我有一张表格:
<form name="registration_form" action="<?php echo base_url();?>user/register" method="post" onsubmit="return verify()">
<table width="100%" border="0" cellspacing="1" cellpadding="2">
<tr>
<td class="login_user_td">Click If Want To Edit :</td>
<td><input type="checkbox" name="edit" id="edit" onclick="enable_edit()"/>
</td>
</tr>
<tr>
<td class="login_user_td"> First Name :</td>
<td><input type="text" name="f_name" readonly="true" id="f_name" value="<?php echo $my_info[0]['first_name'];?>">
</td>
</tr>
<tr>
<td colspan="2" align="center" class="login_user_button"><input type="image" style="display: none;"src="<?php echo base_url();?>assets/front_assets/image/edit.gif" /></td>
</tr>
</table>
</form>
现在复选框编辑有一个调用函数
的onclick事件enable_edit()
{
if($('#edit').prop("checked", true))
{
alert('true');
}
else
alert('false');
}
问题是,每当我点击复选框时,它总是显示为真。
假如我第一次点击,属性被检查,那么它将提醒真实,下次当我再次点击时,这次检查应该取消选中,因此应警告错误。
但每次警报都是真的,而且复选框没有被取消选中。
答案 0 :(得分:2)
您始终设置已检查状态而不是查询状态。
在条件检查中使用prop("checked")
代替prop("checked", true)
,因为后者始终将checked
州属性设置为true
。
有关获取和设置属性值的详细信息,请参阅.prop() documentation。
将您的代码更改为以下内容:
function enable_edit() {
if ($('#edit').prop("checked")) {
alert('true');
} else alert('false');
}
DEMO - 工作复选框
答案 1 :(得分:2)
您正在if语句中将checked属性的值设置为true。
您需要的只是$('#edit').prop("checked");
答案 2 :(得分:1)
if($('#edit').prop("checked") {
}
可能是一个更好的测试。