确定是不是使用 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 - 检查是不是选择了多个单选按钮组,然后返回未选择的人的名称