所以我有一個HTML下拉框4值A,B,C和D.和4預填充文本框(P1,P2,P3,P4)與一些文本在他們和4空白文本框(B1,B2,B3和B4)。jquery自定義規則驗證與取決於和參數屬性
我希望根據在下拉框中選擇什麼值來應用驗證。
如果下拉值爲A,我只想檢查空白文本框B1中的值不等於預先填充的文本框中的值P1,並且B1也不能留爲空白。
與B - > P2.val!= B2.val相同的下拉框值,B2不應該爲空。同樣適用於其他。
我想出了這種方法的一個文本框,但它不工作,不知道什麼是錯的。希望能解決我的問題。
下面的代碼片段的預期結果是,當dropdownbox的值爲A時,它應該只有這樣,才能檢查兩個文本框中的值是否相同,即在P1和B1中。 !
HTML
<form>
<select class="inlineEdit" name="Dropdownbox" id="Dropdownbox">
<option value="A">
A
</option><option value="B">
B
</option><option value="C">
C
</option><option value="D">
D
</option>
</select>
<br/><br/>
<input type="text" name="P1" value="Old Value" />
<br/><br/>
<input type="text" name="B1" />
<button type="submit">Test</button>
</form>
JQuery的
jQuery.validator.addMethod("change", function(value, element, param) {
alert(param + " " + value);
return this.optional(element) || value != param;
}, jQuery.format("You must enter {0}"));
$("form").validate({
rules: {
B1: {
required: function(element) {
return $("#Dropdownbox").val() == "A";
},
change: {
param: $("#P1").val(),
depends: function(element) {
return $("#Dropdownbox").val() == "A";
}
}
}
},
debug: true
});
........
一個可以嘗試在這裏運行上面的代碼:http://jsfiddle.net/
問題是$(「#P1」)。val發送的是true,而不是param中的實際值,這就是爲什麼它不起作用。如果我硬編碼param中的值,代碼工作正常。任何解決方案
感謝,
您是否在DropdownA前丟失了#號? – JSager 2012-03-26 18:07:18
amm不,我將#sign放在原始代碼中。 – Nanu 2012-03-26 18:58:38
好吧,如果你沒有發佈原始代碼,它會變得更加困難,但是我也可以看到你在改變對象之後遺漏了一個關閉點(你關閉了,取決於,但是沒有改變) – JSager 2012-03-26 20:17:54