2012-03-10 8 views
0

出席確認のためのjqueryがありますが、現在は動作していません。私は出席1と出席2と呼ばれる出席ラジオグループを持っています。フォームはリストと呼ばれます。2つのラジオボックスのjquery検証

$("input[name=attendance1]:checked").triggerHandler('click'); 
    $("input[name=attendance2]:checked").triggerHandler('click'); 
+0

コードにインデントと角かっこを固定すると、どこが間違っているかがわかります。 – c0deNinja

答えて

1

$( "input [name = attendance1]:checked)"が何に関係なくjqueryオブジェクトを返すため、動作しない場合はjqueryオブジェクトが返されます。チェックされていなければ、空のjqueryオブジェクトを返します。ある()メソッドはtrueまたはfalseを返します。

$("#list").submit(function() { 
     console.log("submitted"); 
    if ($("input[name=attendance1]").is(":checked")) { 
       alert('Please select attendance1'); 
     if ($("input[name=attendance2]").is(":checked")) { 
       alert('Please select attendance2'); 
      return false; 
     } 
    }); 

EDIT:(文の論理は間違っていた場合)(と、さらに簡単にするために再編集)

$("#list").submit(function() { 
    console.log("submitted"); 
return 0 == $("input[name^=attendance][value=Yes]").not(":checked").each(function(){ 
       alert('Please select ' + $(this).attr('name')); 
    }).length; 
});​ 
+0

ありがとうございますが、どちらもチェックされていない場合はまだ提出中です – jing

+0

if文の論理が間違っています...あなたのために私の投稿を編集します。 –

+0

ここに行くよ。どちらもチェックされていない場合は2つのアラートが表示されますが、実際にはユーザーフレンドリーではありません。フィールドラベルにメッセージを追加してアラートを置き換えるのが最も良い方法です。 –

0

動作するはずです以下。

$("#list").submit(function() { 
    console.log("submitted"); 
    if (!$("input[name=attendance1]").is(":checked")) { 
     alert('Please select attendance1'); 
    } 
    if (!$("input[name=attendance2]").is(":checked")) { 
     alert('Please select attendance2'); 
     return false; 
    } 
}); 
関連する問題