我有一個fiddle here與我的問題。與自定義驗證無限循環選擇元素數組jQuery驗證器
我有一個選擇範圍的形式,所有名稱player[]
。我要檢查這些爲:
- 所有需要
- 至少有2
item.val() !== "none"
- 至少一個
item.text() === "me"
我的驗證的自定義規則是:
var form = $("#player_form");
$.validator.addMethod(
"minPlayers",
function(value, element, requiredValue) {
var noPlayerCount = 0;
$("[id^=player-]").each(function(i) {
if (($(this).find('option:selected').val() !== 'none') && ($(this).find('option:selected').val() !== '')) {
noPlayerCount++;
}
});
if (noPlayerCount < requiredValue) {
return false;
}
return true;
},
"You need more than 1 player for a game"
);
$.validator.addMethod(
"mePlayer",
function(value, element, requiredValue) {
var meCount = 0;
$("[id^=player-]").each(function(i) {
if ($(this).find('option:selected').text() === 'me') {
meCount++;
}
});
if (meCount !== requiredValue) {
return this.check($('#player-1'));
}
return this.valid();
},
"You need to be in the game"
);
form.validate({
rules: {
game_name: {
required: true,
maxlength: 14
},
difficulty: {
required: true
},
'player[]': {
required: true,
minPlayers: 2,
mePlayer: 1
}
},
messages: {
game_name: {
required: "Name your game",
minlength: $.validator.format("Your game name can be a max of {0} chars")
},
difficulty: {
required: "Please select a difficulty"
},
'player[]': {
required: "A player cannot be blank"
}
},
submitHandler: function(form) {
alert("SUBMITTED!");
return false;
}
});
此代碼運行到無限循環/最大堆棧大小。我錯過了什麼?謝謝!
哇!謝謝!瘋狂的愚蠢的錯誤,我無法看到,因爲盯着它太久了! – TheRealPapa