質問

Jö rnの素晴らしいjquery .validateプラグインを使用していますベーシスタンスのザフェラー

asp.netを使用しているので、1つの長いフォームがありますが、フォームはアコーディオンペインを切り替えるボタンを備えたjqueryアコーディオンによって3つのセクションに分割されています。

ペイン1のボタンでペイン1のフィールドを検証し、ペイン2と同様にしたい、など。

明らかに、他の技術では、複数のフォームを使用し、まったく問題はありませんが、.netではできません。

私は考える必要なものはほとんど $( '#aspnetForm')。validate()。unbind()または類似のものです-アコーディオンをクリックすると私はフォームの再検証を要求するので、どのページを開いているかがわかり、新しいルールなどを設定できます。

ルールをクリアしようとしました $( '#aspnetForm')。validate()。rules( 'remove')フォームではなく各フィールドに対してこれを行う必要があるようですそれ自体?

必要なコード例を投稿できますが、スクリプト全体がかなり大きくなったため、チャンクを掘り出さなければなりません。

うまくいけば、私は上記の論理的な意味を理解しています-基本的に、新しいアコーディオンパネルにいるので新しいルールを作成できるようにすべてのルールをクリアする手段は私が望んでいるソリューションですが苦労しています。

どうもありがとう、 テリー

役に立ちましたか?

解決 2

これは確かに私がやっていたことであり、長時間のファイアバグの作業の後、セレクターの1つがクリアされていないようであるため、間違ったルールがロードされていました。

これらは解決され、.validateの各呼び出しには独自のルールセットがあり、.clickイベントのクリックを解除します(たとえば)。 .validate rules。

idrumgoodを通してご意見をお寄せいただきありがとうございます。ご意見をお寄せいただきありがとうございます。

乾杯、 テリー

他のヒント

フォームのいずれかの部分が次のように表示されるときにフラグを設定しようとします

<div id="form_section_1" class="displayed">
     ....
</div>
<div id="form_section_2">
     ....
</div>
<div id="form_section_3">
     ....
</div>

検証ルールで、条件付きにします。

if($('#form_section_1').attr('class').search('displayed') != -1){
     var is_section_1_displayed = true;
}
else{ var is_section_1_displayed = false;

各自でそれを行う(おそらくより効率的な方法)

次に、検証ルールで次のようなことを行います

email: {
         required = is_section_1_displayed;
       }

email がフォームの最初のセクションにあると仮定します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top