したがって、4つの値A、B、CおよびDを持つHTMLドロップダウンボックスがあります。また、いくつかのテキストを含む4つのテキストボックス(P1、P2、P3、P4) 4つの空白のテキストボックス(B1、B2、B3、B4)が表示されます。依存関係とパラメータプロパティを使用したJqueryカスタムルールの検証
dropdownboxで選択されている値に基づいて検証を適用します。
ドロップダウン値がAの場合は、空白のテキストボックスでその値をチェックしたいB1は既定のテキストボックスの値と等しくないP1とB1は空白のままにすることはできません。
B - > P2.val!= B2.valのドロップダウンボックスの値と同じで、B2を空白にしないでください。他の人にも同じことが言えます。
私は1つのテキストボックスに対してこの方法を思いついたが、どういうわけか何の問題がないのか分からなかった。私の問題に対する解決策を感謝します。
また、ドロップダウンボックスの値がAの場合、2つのテキストボックスの値が同じであること、つまり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
ammいいえ、元のコードに#signを配置しています。 – Nanu
元のコードを投稿していないのであれば、さらに難しくなりますが、変更オブジェクトの後ろに閉じることができます(閉じるとは異なりますが、変更はありません) – JSager