簡體   English   中英

jQuery Validation插件規則為特定形式

[英]jQuery Validation plugin rules to specific form

我正在使用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];?>"
        }
    }
});

將這兩個代碼片段放在同一頁面上不起作用。 當上面的代碼主體(因此是rulesmessages )包含在初始$('form').validate({而不是它自己的$('#registerForm').validate({起作用的情況下,我可以'似乎在任何地方都找不到如何在特定表格中添加某些規則,同時又保持所有表格的“通用”規則的地方。

簡而言之:如何在維護通用表單規則的同時,向具有特定ID的特定表單添加規則/消息/ submitHandlers?

您可以使用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”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM