我在我的 jQuery 中进行了以下检查,我认为它可以正常工作以查看是否选中了单选按钮。
if ($("input[@name='companyType']:checked").attr('id') == "primary") {
...
}
这是单选按钮:
<p>
<label>Company Type:</label>
<label for="primary"><input onclick="javascript: $('#sec').hide('slow');$('#primary_company').find('option:first').attr('selected','selected');" type="radio" name="companyType" id="primary" checked />Primary</label>
<label for="secondary"><input onclick="javascript: $('#sec').show('slow');" type="radio" name="companyType" id="secondary" />Subsidiary</label>
</p>
然后,它突然停止工作(或者我是这么想的)。我做了一些调试,最后意识到它返回的是“approved_status”的 id。在我的表格的其他地方,我有一个名为“approved_status”的复选框。我意识到,当我最初测试它时,我必须在 approved_status 为假的记录上进行测试。而且,现在我的大多数 approved_statuses 都是 true/checked。
我把代码改成了这样:
var id = $("input:radio[@name='companyType']:checked").attr('id');
alert(id);
if (id == "primary") {
现在可以正确返回“primary”或“secondary”作为 id。
所以,它正在工作,但它似乎根本不检查名称,现在只检查单选按钮。我只是想知道以备将来使用,原始代码 b/c 有什么问题我可以看到页面上可能有 2 个不同的 radio ,然后我的新修复可能不起作用。谢谢!
最佳答案
试试这个:
var id = $("input[name='companyType']:checked").attr('id');
alert(id);
if (id == "primary") {
关于javascript - 检查是否在 jQuery 中选择了单选按钮时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2706405/