Jquery检测所选按钮的ID?

时间:2013-04-11 14:50:17

标签: jquery button

嗨,这让我四处走动。

考虑这些单选按钮:

<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;);
     }

}

但它始终是真实的。

由于

5 个答案:

答案 0 :(得分:1)

您将值设置为true。从,true电话中删除prop

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

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

答案 1 :(得分:1)

如果不是setting

,则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'))

答案 2 :(得分:0)

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

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

答案 3 :(得分: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();
});

答案 4 :(得分:0)

首先不要使用多个ID,也不要用数字启动它们,因为它没有有效的HTML。

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

这是一个适合您案例的jsFiddle:http://jsfiddle.net/RGZH7/3/