2011-11-12 10 views
0

jquery検証プラグインを使用してフォームを検証しています。私はフォームをタブに分割して、次のボタンをクリックするだけで次のタブに移動することができます。その次のボタンのonclickイベントを回避すると、現在のタブにエラーがないことを確認したいと思います。jqueryは入力のためにクラスごとに入力を確認します

タブはform_groupクラスでマークされています。入力が、私が試してみて、見つけるために多くの方法を試してみましたが、「有効」または「エラー」

のいずれかのクラス指定されonfocusoutイベントによって検証されると

<div id="tab-1" class="form_group"> 
    <div> 
     <label for="name">Your Name:</label> 
     <input id="ins_name" type="text" name="name" maxlength="40" />  
    </div> 

    <a class="next-tab mover" rel="2" href="#">Next Step »</a> 
</div> 

:デフォルトのタブのHTMLは次のようになりますその次のタブボタンをクリックすると、現在のタブにクラス「エラー」の入力があるかどうかを確認することができませんでした。

これは私の最新の試みです。

$('.next-tab, .prev-tab').click(function() { 
    if ($(this).find('input.error')) { 
       alert('error present'); 
       return false; 
    } 

    $tabs.tabs('select', $(this).attr("rel")); 
     return false; 
}); 

divに入力エラーがあるかどうかを教えてもらえますか?私の問題の1つは、$ thisが.next-tab要素を使用していることです。私は運がない最も近い "form_group"クラスを選択しようとしました。

答えて

1

スクリプトの現在の望ましくない動作(エラーがあってもタブを変更したり、フィールドが有効であってもタブを変更しないなど)を送信すると便利です。私は

http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/

+0

アレックス、申し訳ありません:.preventDefault()は、一般的に、イベントのデフォルトの動作を防止するためreturn falseよりも好ましいこと

$('.next-tab, .prev-tab').click(function(e) { if ($('.form_group input.error').length > 0) { alert('error present'); e.preventDefault(); } 

注:とにかく

、私はあなたがこのような何かをしたいと考えていますより良い質問をしないという言い訳しかありません。私の最後の試みでアラートが全く実行されていませんでした。私はあなたの助けに感謝します。このメソッドは、すべてのタブにform_groupクラスがあるので、どのタブに関係なくエラーをキャッチします。それはうまくいきましたが、jquery UIタブのselect関数にチェックを移動しても、エラーを修正せずに別のタブに移動することはできません。 – grantk

関連する問題