2011-08-01 8 views
1

を使用してチェックしているかどうかを確認するI次の表があります。ラジオボタンは、jQueryの

<table id="tableID"> 
    <tr id="rowID">  
     <td class="qCol">  
      <select name="select1"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      </select> 
     </td>  
     <td class="qCo2">  
     <!-- img here -->  
     <input type="text" name="text1" id="text1" /> 
     </td>  
     <td class="qCo3">  
      <select name="select2"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
      </select> 
     </td>  
     <td class="qCo4">  
     <!-- radio buttons here --> 
      <input type='radio' name='name' value='1'> 
      <input type='radio' name='name' value='2'> 
      <input type='radio' name='name' value='3'> 
     </td>  
     <td class="qCo5">  
     <select name="select3"> 
      <option value="1">1</option> 
      <option value="2">2</option> 
      <option value="3">3</option> 
        </select> 
     </td>  
     <td class="qCo6">  
     <!-- hidden validation image here -->  
     </td> 
    <tr> 
</table> 

をし、しかし私は関係なく、ラジオボタンのいずれかが選択されているかどうかのI」は次のjQuery

$("#rowID input[type=text]").blur(function() { 

    if ($(this).children("input:radio").is(':checked')) { 
     alert("yes"); 
    } else { 
     alert("no"); 
    } 

}); 

持っていますそれでもアラートが「いいえ」になっています。今私はラジオボタングループの名前を見ることができますが、特定の状況ではGUIDに起因することができません - 同じもの上のテキストボックスのonblurイベントから始まるDOMを操作する最善の方法または方法ラジオボタンの1つがチェックされている場合は、行を確定にします。

+4

'入力[タイプ=テキストを]'要素には、 '入力を持っていません。実際、 'input'要素は子を持つことができません。 '$(this).children(" input:radio ")'は要素を一切選択しないので、あなたは 'no'を取得します。 –

+0

@Felix - 答えにする必要があります;) –

+0

[この質問 をご覧くださいhttp://stackoverflow.com/questions/2272507/find-out-if-radio-button-is-checked-with -jquery] [1] [1]:http://stackoverflow.com/questions/2272507/find-out-if-radio-button-is-checked-with-jquery おかげ。 – Chandresh

答えて

2

$(this)は、rowIDではなくtextboxを参照しているため、問題があります。

これを行う修正するには:radio`で子供:

$("#rowID input[type=text]").blur(function() { 

    var checkedRadios = $('#rowID').find('input:radio:checked'); 

    if (checkedRadios.length > 0) { 
     alert("yes"); 
    } else { 
     alert("no"); 
    } 

}); 
+0

Duh!私はとてもばかげている - あなたはそれが月曜日だと言うことができます! –

0

テキストボックスセレクタを使用して、そのブラーイベントにバインドしています。そのイベントハンドラ内で、$(this)はテキストボックス自体を参照しています。テキストボックスの子を持っていないので、ラジオボタンは決して見つけられません。

0
$("#rowID input[type=text]").blur(function() { //ect... 

$(this) insadeは、テキスト入力を受け入れます。

あなたはtype = radioを選択する必要があります。

関連する問題