检查jQuery中是否选中单选按钮时的奇怪行为

时间:2010-04-24 22:31:13

标签: javascript jquery asp.net-mvc radio-button

我在我的jQuery中进行了以下检查,我认为它正常工作以查看是否已选中单选按钮。

if ($("input[@name='companyType']:checked").attr('id') == "primary") {
   ...
}

这是radiobuttons:

    <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为false的记录上进行测试。而且,现在我的大多数approved_statuses都是真的/已检查过。

我将代码更改为:

var id = $("input:radio[@name='companyType']:checked").attr('id');
alert(id);
if (id == "primary") {

现在它正确地将“主要”或“次要”作为身份返回。

所以,它正在工作,但它似乎根本没有检查名称,现在只是检查单选按钮。我只是想知道将来使用,原始代码b / c有什么问题我可以看到可能在页面上有2个不同的无线电设置然后我的新修复可能不起作用。谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个:

var id = $("input[name='companyType']:checked").attr('id');
alert(id);
if (id == "primary") {