私は基本的にフォームの検証をしようとしています。エバーギングはうまく動作します。一つのことを除いて。まず、ここに私のコードは次のとおりです。jQuery要素を非表示にして問題を解決する
$('#submit_btn').click(function(){
$("input:not([type=radio],[type=checkbox])").each(function() {
if ($(this).val() == ""){
$('#'+$(this).attr("name")+'_error').show("");
}
else{
$('#'+$(this).attr("name")+'_error').hide("normal");
}
});
if(!($("div[id$=error]").is(":visible")))
alert("a");
});
送信ボタンをクリックした後、それはラジオボタンやチェックボックスでない入力をチェックします。入力が空の場合は、エラーが表示されます。
一部の入力が入力された場合、エラーは非表示になります。
最後に、エラーメッセージが表示されているかどうかを確認します。表示されない場合は、フォームを送信します。
私の問題は、.hide( "normal")の小さなアニメーションでエラーメッセージを隠すことです。私は最後のエラーメッセージを隠す過程で、私の最後のif文が実行され、可視のエラーメッセージがあると考えています(ただし、非表示になっています)。
if文を実行するには非表示のプロセスが完了した後?
私の場合は、エラーメッセージが残っていない場合、別のクリックして送信ボタンをクリックすると警告が表示されます。
私は私の問題についてはっきりしたいと思います。そうでなければ、私はそれを書き直そうとします。
ありがとうございます!
別のルートを取って、自分でソリューション全体をコーディングするのではなく、jQueryの検証プラグインを試してみることをお勧めします。これを試してみてください.jQueryで最も一般的な検証ツールです。http://bassistance.de/jquery-plugins/jquery-plugin-validation/ – mdrg