【问题标题】:Calling jquery validation valid on form element在表单元素上调用有效的 jquery 验证
【发布时间】:2010-01-13 22:03:27
【问题描述】:

我有一个表单,我分别在每个表单元素上调用 valid() 函数。我有一个名为“altemailaddress”的字段,我将规则设置为“email”,并且 required 为 false。但是如果输入文本框中没有值,valid() 函数会返回 false。

jQuery("#aspnet-form").validate({
    onsubmit: false,
    rules: {
        prefix: "required",
        emailaddress: {
            required: true,
            email: true
        },
        altemailaddress: {
            required: false,
            email: true
        }

    },
    messages: {
        prefix: "Please enter a prefix",
        emailaddress: {
            required: "Please enter an email address",
            email: "Invalid email format"
        }

    }
});

var $group = jQuery(this).parents(".validationGroup");
    var isValid = true;


    $group.find(":input").each(function (i, item) {
        if (!jQuery(item).valid())
        {

            isValid = false;
        }           

    });

当我遍历每个项目时,我调用了 valid() 函数。如果 altemailaddress 的规则说 require: false,它会忽略它,如果没有提供值则返回 false。

如果我只是设置验证插件以在提交时进行验证,它可以正常工作。

【问题讨论】:

    标签: jquery validation plugins


    【解决方案1】:

    我认为valid() 仅适用于整个表单

    尝试使用$.validate().element(item)

    if (!$("#aspnet-form").validate().element( item ))
    {
      isValid = false;
    }  
    

    http://docs.jquery.com/Plugins/Validation/Validator/element#element

    【讨论】:

    • 这个方法一开始有效,然后在不更改任何代码的情况下,我再次测试,现在它不起作用。我将不得不再试一次
    • 确保你还在使用 jQuery 1.3 我昨天有一些网站开始出现故障,因为它们自动开始使用 jQuery 1.4,而一些插件没有工作
    【解决方案2】:

    我遇到了同样的问题,我的解决方案有点长,但效果很好:

    假设您有一个输入字段“电子邮件”,例如:

    <input id="Email" class="text-box single-line" type="text" value="" name="Email" data-val-regex-pattern="[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[a-zA-Z]{2,4}" data-val-regex="Invalid email address." data-val="true"></input>
    

    您可以像这样检查字段的值是否与正则表达式匹配:

    var emailreg = $('#Email').attr('data-val-regex-pattern');
    if($('#Email').val().match(emailreg) != null){ //the field is valid }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 2011-08-06
      • 1970-01-01
      • 1970-01-01
      • 2020-09-18
      相关资源
      最近更新 更多