如果从输入字段进行onfocusout,如何立即从输入字段中替换前导零?

时间:2016-10-12 14:22:39

标签: javascript html

<script>
function fieldValidate(){
            let text = document.getElementById('fname').value;
            text = text.replace(/^0+/, '')
        }
</script>


Id: <input type="Number" id="fname" onfocusout="fieldValidate()">

输入字段值没有变化,它没有在输入字段里面替换值exm .. 09到9。但是替换值显示在alert()messege中。

1 个答案:

答案 0 :(得分:2)

当你这样做时

let text = document.getElementById('fname').value;

您获得value媒体资源的并将其复制到text。之后更改text(将其值替换为新值)对value属性中该值的副本没有任何影响。

分配回value属性:

function fieldValidate(){
    let field = document.getElementById('fname');
    field.value = field.value.replace(/^0+/, '');
}

无端的例子:

&#13;
&#13;
function fieldValidate(){
    var field = document.getElementById('fname');
    field.value = field.value.replace(/^0+/, '');
}
&#13;
Id: <input type="Number" id="fname" onfocusout="fieldValidate()">
&#13;
&#13;
&#13;

旁注:除非您正在进行转换(这很精彩),否则如果要在一般网络上使用,您仍然需要使用var而不是let,允许使用旧浏览器。

附注2:不要使用onxyz - 属性样式处理程序,而应考虑使用现代事件处理来连接事件处理程序。