gpt4 book ai didi

Javascript 电话和号码字段无论如何都无法正确验证提交表单

转载 作者:行者123 更新时间:2023-11-28 15:59:40 24 4
gpt4 key购买 nike

更新:

如果我输入 9 位数字的电话号码,并接受 10 位数字的电话号码,下面的脚本将抛出错误......但它也只会接受一位数字 - 我怎样才能阻止这种情况发生。

对于收集器字段,我需要它只接受 11 个数字。

我正在尝试修改我的验证代码以验证电话号码,这似乎是一项很简单的任务,但我无法让它正常工作。

脚本应检查长度是否为 9 位数字,空格、破折号或无空格都可以。如果未输入电话号码,则应给出所需的错误。例如,如果该字段仅输入 8 位数字,则应给出无效电话错误。

请参阅此 jsfiddle 中的代码 - http://jsfiddle.net/5zFqS/7/

function validate_required(field,alerttxt) {
with (field) {
if (value==null||value=="") {
alert(alerttxt);return false;
} else {return true;}
}
}

function validate_email(field,alerttxt) {
with (field) {
apos=value.indexOf("@");
dotpos=value.lastIndexOf(".");
if (apos<1||dotpos-apos<2)
{alert(alerttxt);return false;}
else {return true;}
}
}

function validate_Phone(field,alerttxt) {
var phoneno = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
if(field.value.match(phoneno)) {
alert(alerttxt);return false;
} else {return true;}
}


function validate_collector(field,alerttxt) {
var collect = /^\d{12}$/;
if(field.value.match(collect)) {
alert(alerttxt);return false;
} else {return true;}

}

function validate_form(thisform) {
with (thisform) {
if (validate_required(firstName,"Please enter your First Name")==false)
{firstName.focus();return false;}

if (validate_required(lastName,"Please enter your Last Name")==false)
{lastName.focus();return false;}

if (validate_required(email,"Please enter your Email Address")==false)
{email.focus();return false;}

if (validate_email(email,"Please enter a valid Email Address")==false)
{email.focus();return false;}

if (validate_required(phone,"Please enter your Phone")==false)
{phone.focus();return false;}

if (validate_Phone(phone,"Please enter a valid Phone Number")==false)
{phone.focus();return false;}

if (validate_required(province,"Please select your Province")==false)
{province.focus();return false;}

if (validate_required(collector,"Please enter Collector Number")==false)
{collector.focus();return false;}

if (validate_collector(collector,"Please enter a valid Collector Number")==false)
{collector.focus();return false;}



}
}

我认为我有语法错误,但我看不到它。

最佳答案

您需要删除此行末尾的分号:

if (field.match(/^\d{9}/));

你说空格等应该没问题。在这种情况下,您需要删除(或忽略)它们:

var reg = /\D/g;    // \D identifies non-digit characters, g means 'global'
var stripped = "888-777 66st".replace(reg,"");
// returns: 88877766

此外,不建议使用with

as it may be the source of confusing bugs and compatibility issues

MDN reference

关于Javascript 电话和号码字段无论如何都无法正确验证提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com