检测是否选择了 HTML 复选框
Detecting if an HTML checkbox was selected
我创建了以下 jQuery 脚本来检查我的 "chkboxAdd" 复选框是否被点击。
(function ( $ ){
$.fn.myfunction = function(){
$("input[type='checkbox']").click(function()
{
if($(this).attr('name') == 'chkboxAdd' && $(this).attr('checked') == true )
{
alert('Checkbox add is checked!');
}
else
{
alert('Checkbox add is NOT checked!');
}
});
};
})(jQuery);
但是点击 "chkboxAdd" 复选框后,警告提示总是在 else 子句上,而不是 if 子句并提示:
Checkbox add is NOT checked!
我已经包含了相关的 HTML 片段以供参考。提前谢谢你。
<script>
$(document).ready(function()
{
$('#chkBoxTable').myfunction();
} );
</script>
<table id="chkBoxTable" cellpadding="10" cellspacing="1">
<thead>
<tr>
<th><strong>Page ID</strong></th>
<th><strong>Page Name</strong></th>
<th><strong>Action</strong></th>
</tr>
</thead>
<?php
<tbody>
<tr>
<td><?php echo $row["PAGEID"]; ?></td>
<td><?php echo $row["PAGENAME"]; ?></td>
<td><input type="checkbox" name="chkboxAdd" value="add">Add</td>
</tr>
</tbody>
</table>
$(this).attr('checked')
应该是
$(this).prop('checked')
因为您想要 属性 checked
,而不是属性。获取该属性将确定复选框是否具有 checked
的实际属性,该属性不会因常规用户输入而改变。
例如,如果页面开始时选中了复选框,那么 $(this).attr('checked')
将为真,但如果用户取消选中该框,它仍然等于真。
我创建了以下 jQuery 脚本来检查我的 "chkboxAdd" 复选框是否被点击。
(function ( $ ){
$.fn.myfunction = function(){
$("input[type='checkbox']").click(function()
{
if($(this).attr('name') == 'chkboxAdd' && $(this).attr('checked') == true )
{
alert('Checkbox add is checked!');
}
else
{
alert('Checkbox add is NOT checked!');
}
});
};
})(jQuery);
但是点击 "chkboxAdd" 复选框后,警告提示总是在 else 子句上,而不是 if 子句并提示:
Checkbox add is NOT checked!
我已经包含了相关的 HTML 片段以供参考。提前谢谢你。
<script>
$(document).ready(function()
{
$('#chkBoxTable').myfunction();
} );
</script>
<table id="chkBoxTable" cellpadding="10" cellspacing="1">
<thead>
<tr>
<th><strong>Page ID</strong></th>
<th><strong>Page Name</strong></th>
<th><strong>Action</strong></th>
</tr>
</thead>
<?php
<tbody>
<tr>
<td><?php echo $row["PAGEID"]; ?></td>
<td><?php echo $row["PAGENAME"]; ?></td>
<td><input type="checkbox" name="chkboxAdd" value="add">Add</td>
</tr>
</tbody>
</table>
$(this).attr('checked')
应该是
$(this).prop('checked')
因为您想要 属性 checked
,而不是属性。获取该属性将确定复选框是否具有 checked
的实际属性,该属性不会因常规用户输入而改变。
例如,如果页面开始时选中了复选框,那么 $(this).attr('checked')
将为真,但如果用户取消选中该框,它仍然等于真。