簡體   English   中英

動態表單上的jQuery Custom Validate插件AddMethod

[英]Jquery Custom Validate Plugin AddMethod on Dynamic Forms

我正在嘗試使用Jquery Validate插件,並且能夠弄清楚如何在靜態字段上使用它。

我的問題是如何在動態表單上使用它。 我制造了一個小提琴來討論我的問題。 希望您能耐心閱讀。 小提琴的鏈接在這里

現在,這就是我要做的,驗證在每個文本框中輸入的計算機ID,並確保它是唯一的。 假設您兩次輸入ABCD-123,系統應提醒您它不是唯一的。

希望有人可以幫我這個忙。 謝謝

首先-在編寫代碼時在代碼中添加注釋。

錯誤在這里:

 var arrElements = $(".machineID");

arrElements總是空的,也沒有元machineID

而且你們每個人都不起作用。 我將其重構為http://jsfiddle.net/PaTJ4/

您的代碼可能需要使用更多修復程序,對於該任務而言有點太復雜了。 但是現在可以了。

祝好運

我對您的版本進行了改進-檢測到重復項時,任何重復的字段都應標記為無效,並且應該可以對其進行更改以解決此問題。 因此,您每次都需要重新驗證所有其他字段(使用validator.element() ),但要避免進行遞歸操作(使用validator.validatingOthers )。

為了完整性,我將在此處發布checkMachineID的代碼:

    function checkMachineIDs(element){
        if($(element).val() != ""){
            var arrElements = $("#machineList .machineID"); 
            var $element = $(element);
            var validator = $($element[0].form).validate();
            if(arrElements.length > 1){
                var valid = true;
                arrElements.not('#'+$element.attr('id')).each(function() {
                  var current = $(this); 
                  if (current.val() == $element.val())
                    valid = false;
                });
                if (!validator.validatingOthers) {
                    validator.validatingOthers = true;
                    arrElements.not('#'+$element.attr('id')).each(function() {
                        validator.element(this);
                    });
                    if (valid) validator.element($element);
                    validator.validatingOthers = false;
                } 
                return valid;
            }else{
                return true;
            }
        }else{
            return true;
        }
    }

暫無
暫無

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

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