单击时从多个复选框中获取ID

时间:2014-11-02 11:04:50

标签: javascript jquery

我想在点击时获取当前ID。并且只选中一个复选框。这是我的输入框

<table style="width: 500px; border: 1px solid BLACK;">
  <?php for($i=1; $i<10; $i++){ ?>
  <tr><td><input type="checkbox" name="myCheckboxes[]" class="chkTag" id="chkBox<?php echo  $i; ?>" /></td>
  <td><input type="checkbox" name="myTagCheckboxes[]" class="chkTag" id="chkBox<?php echo $i; ?>"  value=""/></td>
  <td><?php echo $i;?></td></tr> 
  <?php }?>
</table>

这是我的jQuery

  $(document).ready(function(e){
     $('input#chkBox1').on('change', function() {
        $('input#chkBox1').not(this).prop('checked', false);  
    });
  });

它的第一个工作。我没有点击其他ID。

3 个答案:

答案 0 :(得分:1)

$(document).ready(function(e){
  $('input').on('click', function(e){
    var id = e.target.id;
    $('input#'+id).on('change', function() {
        $('input#'+id).not(this).prop('checked', false);  
    });

  });
});

FIDDLE HERE http://jsfiddle.net/spydo9s3/

答案 1 :(得分:0)

您在那里的代码定位一个复选框(ID:chkBox1)。你的PHP是动态ID,所以chkBox1,chkBox2等。

也许你想要的是一个更动态的点击监听器,例如:

$(document).ready(function(e)
{
    $('input.chkTag').on('change', function()
    {
        $('input.chkTag').not(this).prop('checked', false);
    });
});

这将针对每个输入共享的类。

答案 2 :(得分:0)

ID必须是唯一的!您必须更改PHP,以便每个输入都获得与其他任何输入不同的唯一ID。

类似的东西:

<?php for($i=1; $i<10; $i++){ ?>
  <tr><td><input type="checkbox" name="myCheckboxes[]" class="chkTag" id="chkBox_0_<?php echo  $i; ?>" /></td>
  <td><input type="checkbox" name="myTagCheckboxes[]" class="chkTag" id="chkBox_1_<?php echo $i; ?>"  value=""/></td>
  <td><?php echo $i;?></td></tr> 
<?php }?>

在jQuery中,您只需要:

$('input.chkTag').on('change', function(){
    var id = this.id;
    // do something with id
});

如果您只是想要在其中检查其中一个,那么您不需要type="checkbox",而是type="radio"

相关问题