Javascript,当填充数字到10个十进制时如何返回false?
这是我填写手机号码的代码。我尝试设置必须return false
当用户将数字填充到输入==
10 个小数但不起作用时,我该怎么办?
<p style="margin-bottom: 20px;">
<input name="mobile_number" onKeyUp="check_mobile_number_length(this.value)" type="number" class="feedback-input" id="mobile_number" onchange="updateInput_mobile_number(this.value)">
<span id="mySpan_mobile_number" style=" float: left; margin-left: 12px; ^margin-left: 0px; font-size: 12px; color: red;"></span>
</p>
<script>
function check_mobile_number_length(mobile_number_value){
var mobile_number_value = mobile_number_value.replace(/[^0-9,.]+/g, "");
document.getElementById("mobile_number").value = mobile_number_value;
var mobile_number_value = document.getElementById("mobile_number").value;
if(mobile_number_value.length==10)
{
document.getElementById("mobile_number").style.border = "1px solid rgba(72,72,72,0.4)";
document.getElementById("mySpan_mobile_number").innerHTML = "";
return false;
}
else
{
document.getElementById("mobile_number").style.border = "1px solid red";
document.getElementById("mySpan_mobile_number").innerHTML = "please enter mobile number for 10 decimal";
}
}
</script>
释放用户的密钥时,字符已经键入。因此,您不能为此使用onkeyup
。在这里,我使用了onkeypress
,它在按下键时触发。
此外,虽然return false
直接内联时工作,但这里最好直接拒绝事件,方法是将事件传递给函数,然后对其调用.preventDefault()
。这可以防止事件发生后的默认操作(即onkeypress
阻止按下键,onclick
阻止单击等(。
在这里,我创建了一个如何做到这一点的基本示例。希望您可以对其进行调整以满足您的需求:
function check_mobile_value(ele, ev) {
if (ele.value.length>=10) {
ev.preventDefault();
}
}
<input type="number" onkeypress="check_mobile_value(this, event)">