使用 jquery 验证验证国际电话输入

     2023-05-09     200

关键词:

【中文标题】使用 jquery 验证验证国际电话输入【英文标题】:Validating International Telephone Input using jquery validation 【发布时间】:2016-12-23 23:31:34 【问题描述】:

极客!

我们都知道名为 International Telephone Input 的很棒的插件,有没有办法将它自己的验证方法 intlTelInput("isValidNumber") 绑定到 jquery 验证中?

intlTelInput("isValidNumber") 如果为 true,则返回 true,如果为 false,则返回 false

下面还有更多细节!:

var handleContactFormValidation = function () 

    var value_form = $('#contact_form');//form i would like to validate where phone field is in!
    var value_error = $('.alert-danger', value_form);
    var value_success = $('.alert-success', value_form);
    value_form.validate(
        errorElement: 'span', //default input error message container
        errorClass: 'help-block help-block-error', // default input error message class
        focusInvalid: false, // do not focus the last invalid input
        ignore: "", // validate all fields including form hidden input
        rules:                              
            phone: 
                required: 
                    depends: function () 
                            if ($(this).intlTelInput("isValidNumber") == true)
                            return true
                        else
                            return false
                    
                
            ,

        ,

现在根据结果“isValidNumber”方法返回,我需要将该验证输出 true,false 传递给 jquery 验证,但以上不起作用

【问题讨论】:

【参考方案1】:

这个验证逻辑没有意义...

rules:                              
    phone: 
        required: 
            depends: function () 
                if ($(this).intlTelInput("isValidNumber") == true)
                    return true
                else
                    return false
            
        
    ,
,

按照您的编写方式,depends 属性表示当电话号码有效时,phone 字段为required,而当电话号码无效时,该字段不是required。要做出此决定,必须填写该字段。但如果该字段已填写,则 required 规则不再重要。因此,当它只是留空(没有有效的电话号码)时,它不是required,并且不会验证任何内容。

如果您想使用 International Telephone Input 插件验证电话号码,则需要调用此外部 .intlTelInput() 方法的 write a custom rule using the .addMethod() method。

$('#myform').validate(
    .....
    rules:                              
        phone: 
            required: true,      // field is mandatory
            intlTelNumber: true  // must contain a valid phone number
        ,
    ,
    ....
);

// create a custom phone number rule called 'intlTelNumber'
jQuery.validator.addMethod("intlTelNumber", function(value, element) 
    return this.optional(element) || $(element).intlTelInput("isValidNumber");
, "Please enter a valid International Phone Number");

要在不使用国际电话输入插件的情况下执行此操作...

jQuery.validator.addMethod("intlTelNumber", function(phone_number, element) 
    phone_number = phone_number.replace( /\s+/g, "" );
return this.optional( element ) || phone_number.length > 9 &&
    phone_number.match( /^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d4$/ );
, "Please enter a valid International Phone Number");

此示例显示美国电话号码的正则表达式。修改它以适合您的特定电话号码要求。提示:在您的国际电话输入插件中查找正确的正则表达式。

【讨论】:

非常感谢您提供如此科学的答案,我一直尊重具有扎实理论背景的专家(而不是尝试和跟踪)。 phone 字段存在一个问题,它实际上是一个输入数组(phone[]),这可能会影响 jquery 验证,因为 jquery 验证只能处理每个规则的一个字段,因此我决定通过手动添加类错误和跨度来远离 jq 验证的手动验证问题是如果验证字段表单组有错误,如何阻止表单提交? @SuhaybKharabsheh,我完全回答了您关于 jQuery Validate 插件的问题。如果您决定采用其他方法并遇到新问题,请将其作为新问题发布。 @NarenVerma,好的,谢谢。我确定了答案。 phone_number 应该是进入函数的值参数的名称。从插件的附加方法文件中复制。

用于单独输入字符的 jQuery 插件(例如用于电话令牌验证)

...下一个字符字段。这种输入通常与电话号码验证令牌一起使用。我希望你知道我的 查看详情

使用远程方法对 emailId 和电话号码进行 Jquery 验证

】使用远程方法对emailId和电话号码进行Jquery验证【英文标题】:JqueryvalidationforemailIdandphonenumberusingremotemethod【发布时间】:2016-01-1720:20:35【问题描述】:我正在尝试使用jQuery验证插件(远程方法)验证输入的emailId和电话号码是... 查看详情

jQuery 验证澳大利亚电话号码

】jQuery验证澳大利亚电话号码【英文标题】:jQueryValidatingAustralianPhoneNumbers【发布时间】:2015-07-1312:45:10【问题描述】:我正在尝试从输入框中获取值,验证并格式化数字,然后更新输入字段。我希望它验证所有澳大利亚电话号... 查看详情

仅在输入掩码 jquery 中从某个号码开始验证电话号码

】仅在输入掩码jquery中从某个号码开始验证电话号码【英文标题】:Validatephonenumberwithstartingfromcertainnumberonlyininputmaskjquery【发布时间】:2016-11-1512:30:09【问题描述】:我正在尝试验证电话号码,如下所示。在61之后,它应该只从2... 查看详情

使用jquery获取带有国家代码的国际电话输入值[重复]

】使用jquery获取带有国家代码的国际电话输入值[重复]【英文标题】:getintl-tel-inputvaluewithcountrycodeusingjquery[duplicate]【发布时间】:2021-08-2416:08:38【问题描述】:我正在尝试通过国家/地区代码获得价值。https://www.jqueryscript.net/form/... 查看详情

jQuery验证器:表单拒绝验证

...的电话号码日志,然后检查验证,它会返回“真”。它不使用不显眼的验证。该项目是一个在VisualS 查看详情

jQuery 使用 RegEx 验证电话号码

】jQuery使用RegEx验证电话号码【英文标题】:jQueryvalidatephonenumberwithwithRegEx【发布时间】:2011-08-0705:26:31【问题描述】:我有一个简单的ajax表单,我正在尝试验证它有值该值是一个10位数字我正在尝试使用RegEx来执行此操作。这是... 查看详情

国际电话输入 jquery 插件 utilsScript 加载错误

...gerror【发布时间】:2018-07-1616:56:36【问题描述】:我正在使用intlTelInputjquery插件,我尝试包含utilscript选项$("#phone).intlTelInput(utilsScript:"utils.js");加载utilscrip 查看详情

Jquery 验证引擎正则表达式

...ession【发布时间】:2012-07-1206:35:48【问题描述】:我正在使用jQuery来验证输入表单。我的输入框中有名称、电话等值,这些值是作为用户指南的幽灵提示。我的问题出现在jQuery验证上,因为它将这个幻影文本识别为输入,因此在... 查看详情

jQuery 验证插件问题不适用于数字字段

...rfield【发布时间】:2020-07-0501:41:45【问题描述】:我正在使用一个jQuery验证插件,它正在部分工作。验证电子邮件字段没有问题(输入时显示两个错误的电子邮件),但电话号码字段未得到验证。它显示消息“请输入手机号码”... 查看详情

即使输入文本有效(Javascript或Jquery),如何强制输入文本无效

...电子邮件验证工作正常。但是电话验证不起作用。所以我使用了intelInputPhone验证。现在我可以验证我 查看详情

验证 jquery 问题

】验证jquery问题【英文标题】:Validationjqueryissue【发布时间】:2018-01-1203:48:32【问题描述】:我真的需要帮助,我正在处理验证表单,验证正在运行。我的问题是如何在该字段旁边显示特定于该字段的错误?现在如果用户输入了... 查看详情

jQuery 验证插件查询

...电话字段添加验证,以便它只接受10到14位数字(也欢迎使用其他更好的英国电话验证方法)。我正在使用jQuery验证插件。<formclass="form"id="lg.callback.form"action="[[~[[*id]]]]"method="post 查看详情

yii 验证电话号码的输入数组

...。用户可以在其中添加多个电话号码。问题是,我将如何使用Yii的rules()验证这一点?<divclass="form-group"><?phpecho$form->labelEx($mod 查看详情

使用验证插件 jquery 验证输入数组 - 显示每个输入的错误

】使用验证插件jquery验证输入数组-显示每个输入的错误【英文标题】:validatearrayofinputsusingvalidatepluginjquery-showerrorsforeachinput【发布时间】:2016-08-3103:27:33【问题描述】:在我的web应用程序中,我需要允许用户在表单中输入无限... 查看详情

使用 jQuery 验证插件验证一些文件输入字段

】使用jQuery验证插件验证一些文件输入字段【英文标题】:ValidatesomefileinputfieldswithjQueryvalidateplugin【发布时间】:2012-10-1822:57:26【问题描述】:HTML<divid="multadpic"><inputtype="file"name="adpic[]"/></div>我在这个div后面有一个... 查看详情

jQuery通过验证设置电话号码的最小值和最大值

】jQuery通过验证设置电话号码的最小值和最大值【英文标题】:jQuerysetminandmaxvalueforphonenumberwithvalidation【发布时间】:2019-01-2019:31:07【问题描述】:我需要验证我的inputtype="text",当按键时最小值为7,最大值为13。我还需... 查看详情

使用验证器插件 Jquery 验证动态输入表单元素

】使用验证器插件Jquery验证动态输入表单元素【英文标题】:ValidatedynamicinputformelementsusingValidatorPluginJquery【发布时间】:2016-05-2821:46:14【问题描述】:我正在使用这个http://jqueryvalidation.org/jquery验证插件。HTML动态表单会是这样的... 查看详情