[英]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.