簡體   English   中英

在 jquery 中實現 require_from_group 驗證

[英]implementing require_from_group in jquery validate

我試圖讓一組輸入作為一個進行驗證。 因此,如果任何輸入為空,它將在輸入下方顯示一條消息。 我一直在這里關注另一個 SO 答案。 4 個輸入將不會驗證。 當沒有提交數據時,他們只是不做任何事情。 我的其他輸入驗證得很好。 這是我的表格:

<div class="creditcard form-group">
    <h2>Credit Card</h2>
    @Html.TextBoxFor(model => model.cardNumber, new { @class = "form-control cc", @id = "CardNum", @placeholder = "Card Number" })
    @Html.TextBoxFor(model => model.name, new { @class = "form-control cap cc", @id = "FullName", @placeholder = "Full Name" })
    @Html.TextBoxFor(model => model.expDate, new { @class = "form-control cc", @id = "CardExp", @placeholder = "MM/YY" })
    @Html.TextBoxFor(model => model.cvv, new { @class = "form-control cc", @id = "CardCVV", @placeholder = "CVV" })
    @Html.HiddenFor(model => model.ccType)
    ....

我正在驗證的 jquery:

$.validator.addMethod("require_from_group", function (value, element, options) {
    var valid = $(options[1], element.form).filter(function () {
        return $(this).val();
    }).length >= options[0];
    return valid;
    }, $.validator.format("Please fill out at least {0} of these fields."));
    $("form").validate({
        rules: {
            cardNumber: { require_from_group: [2, ".cc"] },
            name: { require_from_group: [2, ".cc"] },
            expDate: { require_from_group: [2, ".cc"] },
            cvv: { require_from_group: [2, ".cc"] }
        }
    });

如果有幫助,這就是 MVC 5。

您正在嘗試遵循一個已有五年歷史的答案。 從那時起,默認的require_from_group方法的錯誤已得到修復; 並且該函數目前比您手動創建的函數復雜得多。

所以你只需要包含additional-methods.js文件就可以使用默認的require_from_group方法。 否則,您可以從additional-methods.js文件中復制此方法,但 IMO,為了將來的可維護性,最好包含該文件。

如果這不能解決問題,您需要向我們展示您呈現的HTML 標記(如瀏覽器源代碼中所示),以檢查您是否犯了任何其他錯誤。

工作演示: http : //jsfiddle.net/jo65e26a/


我試圖讓一組輸入作為一個進行驗證。

這不是require_from_group的意思,也不是你配置它的方式......

require_from_group: [2, ".cc"]

2參數意味着需要四人組中的任意兩個輸入。 如果您需要填寫所有四個,那么您可以將參數設置為4 ,但這與簡單地在所有四個輸入上使用required規則完全沒有區別。

文檔: require_from_group

也許您打算將驗證消息合二為一? 如果是這樣,那么您將使用groups選項

groups: {
    ccGroup: "cardNumber name expDate cvv"
}

演示 2: http : //jsfiddle.net/sx7cda0c/1/


還有一個方法叫做skip_or_fill_minimum ,這意味着你設置了一個組中需要的最少字段數,否則可以跳過該組。 不確定這是否是你想要的。

暫無
暫無

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

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