确定是不是使用 jQuery 检查单选按钮

Posted

技术标签:

【中文标题】确定是不是使用 jQuery 检查单选按钮【英文标题】:Determine if radio buttons are checked using jQuery确定是否使用 jQuery 检查单选按钮 【发布时间】:2011-08-01 12:25:22 【问题描述】:

我有下表:

<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>

我有以下 jQuery

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

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

);

但是,无论是否选择了其中一个单选按钮,我仍然会收到“否”警报。现在我知道我可以看到单选按钮组的名称,但在某些情况下,由于 GUID,我将无法看到 - 从同一文本框的 onblur 事件开始处理 dom 的最佳方法或方式是什么行来确定是否选中了其中一​​个单选按钮。

【问题讨论】:

input[type=text] 元素没有 input:radio 子元素。事实上,input 元素不能有任何子元素。所以你得到no 因为$(this).children("input:radio") 没有选择任何元素。 @Felix - 这应该在答案中;) 请查看这个问题 [***.com/questions/2272507/… [1]: ***.com/questions/2272507/… 谢谢。 【参考方案1】:

您的问题是因为 $(this) 指的是文本框而不是 rowID。

要解决这个问题:

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

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

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

);

【讨论】:

【参考方案2】:

您正在使用文本框选择器并绑定到它们的模糊事件,并且在该事件处理程序中,$(this) 指的是文本框本身。由于您没有任何子文本框,因此它永远不会找到任何单选按钮。

【讨论】:

【参考方案3】:
$("#rowID input[type=text]").blur(function ()  //ect...

$(this) insude 函数将引用您的文本输入。

您需要选择 type=radio。

【讨论】:

以上是关于确定是不是使用 jQuery 检查单选按钮的主要内容,如果未能解决你的问题,请参考以下文章

jQuery - 检查是不是选择了多个单选按钮组,然后返回未选择的人的名称

当单选按钮为runat =“服务器”时使用jQuery检查单选按钮?

使用 jquery 检查禁用的单选按钮

确定是不是使用 jQuery 检查单选按钮

使用 jQuery 检查验证单选按钮

如何确定是不是选中了单选按钮? [复制]