2011-07-08 14 views
0

いくつかのラジオボタンが含まれているフォームを検証しようとしています。フォームのいくつかのラジオボタンは、同じクラス名 'video_type'を持ちます。複数のラジオでjQueryの問題が発生する

jQuery検証スクリプトでは、フォームが送信された後、クラス名 'video_type'を持つラジオボタンが選択されているかどうかを確認します。ユーザーがを少なくとも1つのラジオボタンのクラス名 'video_type'と値1を選択した場合はtrueを返します。それ以外の場合はfalseを返します。私はこれを使用している時点では

HTML:

<input type="radio" name="video_option_1" class="video_option" value="1">Yes 
<input type="radio" name="video_option_1" class="video_option" value="0">No 

<input type="radio" name="video_option_2" class="video_option" value="1">Yes 
<input type="radio" name="video_option_2" class="video_option" value="0">No 

のjQuery:

$("#completeOrderForm").submit(function(){ 
if($(".video_type").val() == 0){ 
    $("#showerrors").show().html("Please select a video type."); 
    return false; 
} 
}); 

しかし、私はそれは正しくないです実現。私は何をする必要がありますか?

答えて

1

これは動作するはずです:

if ($(".video_option[value='1']:checked").length == 0) { 
    $("#showerrors").show().html("Please select a video type."); 
    return false; 
} 

を基本的には、値1([value='1'])を持っているクラス.video_optionを持つすべての要素を選択していると(:checkedセレクタを使用して)チェックされます。結果が0のラジオがチェックされていない場合、選択された要素の数がカウントされます。

フィドル:例を作成するときは、クラス名video_typeとラジオボタンについて話http://jsfiddle.net/bjorn/UwufF/6/

EDIT はまだコードがvideo_optionを示し、私はコードで行きました。

+0

更新された例では、値が1であるという要件を逃しました。 –

+0

ええ、ごめんなさい - 私のコードから名前属性を変更するのを忘れました。あなたのソリューションは完璧に動作します。ありがとう! – hohner

関連する問題