私は現在、bassistance jquery validationまたは jqueryvalidation プラグイン (名前を変更しました) を使用しており、次のようなフォームを検証しています。
if($.fn.validate) {
$("#frmNewOrder").validate({
rules: {
txtAmount: {
required: true,
digits: true
},
ddlAccount: {
required: true
},
ddlBank: {
required: true
}
}
});
}
必要な量に応じて、余分なフィールドが必要かどうかに応じてドロップダウンリストが表示され、そのドロップダウンリストに応じて別のテキスト入力が行われます。次のようになります。
if($('#txtAmount').val() >= 10000){
//add ddlReason required
}
if($('#ddlReason').val() == 'o'){
//add txtReason required
}
他のフィールドと同様に「必須」の css クラスを追加しようとしましたが、それらがルール内にない場合は機能しませんか? 私は次のようなルールを追加しようとしました:
$( "#ddlReason" ).rules( "add", {
required: true});
それもうまくいきません。助言がありますか?
編集:これは、私が使用している jquery 検証へのリンクです。外部でルールを使用すると、次のエラーが発生します。
Uncaught TypeError: Cannot read property 'settings' of undefined
124行目:
var settings = $.data(element.form, 'validator').settings;
他の場所で見た提案を使用して、これを行ったことがエラーの原因です:
var defaultrules = {
txtAmount: {
required: true,
digits: true
}
}
if($.fn.validate) {
$("#frmNewOrder").validate();
addRules(defaultrules);
}
編集 2: これが html マークアップです。
<form id="frmNewOrder" name="frmNewOrder" action="" method="post">
<label>Amount</label>
<input type="text" name="txtAmount" id="txtAmount" class="required" />
<button id="calculate" type="button">Calculate</button>
<div id="dvreason" style="display:none;">
<select id="ddlReason" name="ddlReason">
<option></option>
<option value="i">Option 1</option>
<option value="o">Other</option>
</select>
<div id="dvother" style="display:none">
<label>Other reason</label>
<input type="text" name="txtOther" id="txtOther" />
</div>
</div>
<input type="submit" name="send" id="send" value="Send" />
</form>