0

我正在使用jQuery Validation 插件来验证我的表单。现在我想验证我网站上的每个表单。这有效:

$('form').validate({
    <?php echo $translation["validation_lang"];?>
    errorPlacement: function (error, element) {
        $(element).tooltipster('update', $(error).text());
        $(element).tooltipster('show');
    },
    success: function (label, element) {
        $(element).tooltipster('hide');
    }
});

我正在使用Tooltipster在其相应字段旁边显示错误。同样,这有效。那里的PHP-string 可以选择加载语言包。

现在我的网站上有其他需要附加规则的表格。例如,注册表应该检查用户名可用性,检查用户名有效性(长度,字符,...)等。

$('#registerForm').validate({
    rules: {
        username: {
            minlength: 3,
            maxlength: 50
        },
        password1:  {
            minlength: 5
        },
        password2:  {
            minlength: 5,
            equalTo: "#password1"
        },
        email: {
            remote:{
                url: "getContent.php",
                type: "post",
                data: {
                    type: "checkMail"
                }
            }
        },
        username:   {
            remote: {
                url: "getContent.php",
                type: "post",
                data:   {
                    type: "checkUser"
                }
            }
        }
    },
    messages:   {
        email:  {
            remote: "<?php echo $translation["already_registered"][0];?>"
        },
        username:   {
            remote: "<?php echo $translation["already_registered"][1];?>"
        }
    }
});

将这两个代码片段放在同一页面上是行不通的。当上面的代码主体(因此rulesand messages)在初始$('form').validate({而不是它自己的内部时,$('#registerForm').validate({它确实有效。我似乎无法在任何地方找到如何将某些规则添加到特定表单,同时保持所有表单的“一般”规则。

简而言之:如何将规则/消息/submitHandlers 添加到具有特定 ID 的特定表单,同时保持通用表单规则?

4

1 回答 1

1

您可以使用 setDefaults 方法来定义常见的验证内容:http: //jqueryvalidation.org/jQuery.validator.setDefaults/

例子:

$.validator.setDefaults({
    errorPlacement: function (error, element) {
    $(element).tooltipster('update', $(error).text());
    $(element).tooltipster('show');
},
    success: function (label, element) {
    $(element).tooltipster('hide');
}
});

jsFiddle - 将所有表单的错误元素设置为“em”。

于 2013-09-14T13:17:51.890 回答