我想在点击时获取当前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。
答案 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"