使用JavaScript在手机号码字段中指定不超过/不少于11位数字

使用JavaScript在手机号码字段中指定不超过/不少于11位数字,javascript,Javascript,我试图确保人们在提交表单之前在字段中输入不少于/不超过11位数字。以下是当前脚本: $(文档).ready(函数(){ $(“#表格提交#电话号码”)。按键(功能(e){ if(this.value.length!=11){ $('.nom').remove(); $(此).after('请输入以1开头的完整11位手机号码'); }否则{ $('.nom').remove(); } var-keyCode=e.which; /* 8-(退格) 32-(空间) 48-57-(0-9)个数字 */

我试图确保人们在提交表单之前在字段中输入不少于/不超过11位数字。以下是当前脚本:

$(文档).ready(函数(){
$(“#表格提交#电话号码”)。按键(功能(e){
if(this.value.length!=11){
$('.nom').remove();
$(此).after('请输入以1开头的完整11位手机号码');
}否则{
$('.nom').remove();
}
var-keyCode=e.which;
/*
8-(退格)
32-(空间)
48-57-(0-9)个数字
*/
如果((keyCode!=8 | | keyCode==32)和&(keyCode<48 | | keyCode>57)){
返回false;
}
if(this.value.length==11){
返回false;
}
});
$('#表单提交\电话号码').keyup(函数(e){if(e.keyCode==8)$(this.val('');})

});以下是我对您的代码的看法。首先,我将隐藏或显示
span
的部分移动到
keyup
侦听器中,因为此时您知道输入的最终长度。此外,我还使用了
.hide()
.show()
而不是每次删除元素并重新创建它

我注释掉了导致退格删除整个输入的最后一部分,因为它对我来说似乎不必要,但如果需要,您可以保留它。我还稍微更改了决定字符是否被接受的
if
语句,因此在这种情况下,您可能需要将
keyCode==8
添加到这些条件中

$(文档).ready(函数(){
$(“#表格提交#电话号码”)。按键(功能(e){
var-keyCode=e.which;
/*
8-(退格)
32-(空间)
48-57-(0-9)个数字
*/
如果(keyCode==32 | | keyCode<48 | | keyCode>57){
返回false;
}
if(this.value.length==11){
返回false;
}
});
$('表格提交\电话号码').keyup(功能(e){
如果(this.value.length!=11){
$('.nom').show();
$('提交').attr('禁用','禁用');
}否则{
$('.nom').hide();
$(“#提交”).removeAttr('disabled');
}
/*如果(e.keyCode==8)
$(this.val(“”);
}*/
});
});


请输入完整的11位手机号码,以1开头

我们也需要您的相关HTML代码。如果长度为!==11?我不知道怎么做。我精通HTML和CSS,而不是JS。试图找出一个片段,我可以插入以获得所需的结果。感谢尝试!仍然允许我提交小于11的内容,并且在输入字段后不允许我退格。我编辑了我的答案,现在有一个提交按钮,当输入长度小于11时,该按钮将被禁用。我不确定你说的退格是什么意思,它似乎在片段中起作用。