0

嗨,这是让我转圈圈。

考虑这些单选按钮:

<input type="radio" class="win" id="50" value="1" name="match1" />
<input type="radio" class="cover" id="50" value="2" name="match1" />

<input type="radio" class="win" id="51" value="1" name="match2" />
<input type="radio" class="cover" id="51" value="2" name="match2" />

<input type="radio" class="win" id="52" value="1" name="match3" />
<input type="radio" class="cover" id="52" value="2" name="match3" />

提交表单时,我想知道任何被选中的按钮的 id。

有些按钮对可能根本没有被选中。

我试过了:

for (var x=1; x<4; ++x){

     if($('form #'+$(this).attr("id")+'input:radio[name=match'+x+']').prop('checked', true)){
          alert('Checked;);
     }

}

但它总是 evlautes 为真。

谢谢

4

5 回答 5

1

您将值设置为 true。,trueprop通话中删除:

if($('form #'+$(this).attr("id")+'input:radio[name=match'+x+']').prop('checked')){
      alert('Checked;);
}

当您使用它设置属性时,.prop('checked', true)它会返回您调用它的 jQuery 元素 - 并且计算结果为 true。

于 2013-04-11T14:51:20.863 回答
1

您是settingif 中的已检查属性,而不仅仅是getting

改变

if($('form #'+$(this).attr("id")+'input:radio[name=match'+x+']').prop('checked', true))

if($('form #'+$(this).attr("id")+'input:radio[name=match'+x+']').prop('checked'))
于 2013-04-11T14:51:20.967 回答
0

这是您的场景的完整工作代码,示例 jsFiddle 位于:http: //jsfiddle.net/CV4x8/

<input type="radio" class="win" id="50" value="1" name="match1" />
<input type="radio" class="cover" id="50" value="2" name="match1" />

<input type="radio" class="win" id="51" value="1" name="match2" />
<input type="radio" class="cover" id="51" value="2" name="match2" />

<input type="radio" class="win" id="52" value="1" name="match3" />
<input type="radio" class="cover" id="52" value="2" name="match3" />

<button id="getChecked"></button>

function alertChecked() {
   for (var i = 0, x = 4; i < x; i++) {
       if ( $('input[name=match' + i + ']').is(':checked')) {
           alert("Checked");
        }
    }
}

$('#getChecked').click(function() {
    alertChecked();
});
于 2013-04-11T14:59:09.617 回答
0

我相信这会回答你的问题:

for (var i = 0, len = 4; i < len; i++) {
    if ( $('input[name=match' + i + ']:checked').val() ) {
        alert("Checked");
    }
}
于 2013-04-11T14:54:08.910 回答
0

首先,不要使用多个 ID,也不要以数字开头,因为它不是有效的 HTML。

$("input[type='radio']:checked").each(function( index ) {
     $('#output').append($(this).attr('id')+' is checked<br />');
});

这是一个适用于您的情况的 jsFiddle:http: //jsfiddle.net/RGZH7/3/

于 2013-04-11T15:06:43.710 回答