2 つのテキスト入力と 2 つのラジオ ボタンを備えたフォームがあります。1 つのラジオ ボタンは、顧客が今後すべての連絡を紙のメールで行いたい場合に使用し、もう 1 つのボタンは、顧客が電子メールでの連絡を希望する場合に使用します。
ユーザーが電子メールを選択すると、入力テキストボックスの 1 つに電子メール アドレスを入力する必要があります。ユーザーが郵便を選択すると、他のボックスに住所を入力する必要があります。
これには、カスタム jquery 検証エンジン関数があります。
function checkBillRoutePostalAddressConflict(field, rules, i, options){
var fieldValue = field.val();
var accountIdR = field.attr('id').match(/\d+$/);
var radioButton = jQuery('#postalBillsDestination_' + accountIdR);
if(!fieldValue && radioButton.attr("checked")){
alert('options.allrules.checkBillRoutePostalAddressConflict.alertText') // for debugging
return options.allrules.checkBillRoutePostalAddressConflict.alertText;
}
}
バリデーターがクラスとともに入力テキストフィールドに追加されますclass="validate[funcCall[checkBillRoutePostalAddressConflict]]"
問題は、それが機能しないことです。条件が正しいことを意味するデバッグ アラート メッセージが表示されます。それを他のカスタムバリデータの1つに置き換えると、すべてうまくいきます。
空であってはならないフィールドにカスタム検証関数を書き込むと、jQuery が validate[required] を使用する必要があるため、メッセージが表示されない、と誰かが私に言いました。
これが本当なら、誰もハックではない回避策を知っていますか?
1 つのオプションはshowPrompt
直接使用することですが、よりクリーンで優れたものがあるかもしれません。
ありがとうございました!