因此,我在我的 HTML5 模式属性中为 iPhone 数字键盘使用了最小的正则表达式 [0-9]*。我还有一个提交功能,可以通过服务器发送电子邮件。一切正常,直到我意识到它正在尝试发送表单,而不管浏览器是否试图阻止基于不正确的用户输入的提交。
所以我做了以下但不能让它工作:
<script>
function validate(){
var phone=/[0-9]*/;
var x=document.forms["form"]["contactnum"].value;
if (x!=phone){
alert("Contact Number must be a valid phone number (no dashes)");
return false;
}
else {
alert("Thank you! We have received your information and will contact you shortly.");
ajax('{{=URL('new_post')}}',['phone'], 'target');
return false;
}
}
</script>
问题是我只有在 if 语句中设置 if (x==null || x=="") 才能让它工作。如果我尝试将它与任何其他 var 匹配,它总是会说我不匹配 [0-9]*。我已经写了几个复杂的正则表达式,但真的不想在这个简单的表单上使用任何东西。我只想要 iPhone 上的数字键盘,如果它不是数字或 null,则不提交。我什至不在乎他们是否在电话中输入“2”,只要是数字即可。
谢谢。