0

我有一个表格:

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

问题是,每当我点击复选框时,它总是显示为真。

假设如果我第一次单击,该属性被选中,那么它会警告 true,下次当我再次单击时,这次检查应该被取消选中,因此应该警告 false。

但是每次警报都为真时,复选框并没有被取消选中。

4

3 回答 3

2

您总是设置检查状态而不是查询它。

在条件检查中使用prop("checked")而不是,prop("checked", true)因为后者将始终将checkedstate 属性设置为true.

有关获取和设置属性值的更多详细信息,请参阅.prop() 文档

将您的代码更改为以下内容:

function enable_edit() {
  if ($('#edit').prop("checked")) {
    alert('true');
  } else alert('false');
}

演示- 工作复选框


于 2013-01-12T09:12:14.053 回答
2

您在该 if 语句中将 checked 属性的值设置为 true。

你需要的只是$('#edit').prop("checked");

于 2013-01-12T09:12:24.367 回答
1
if($('#edit').prop("checked") {

}

可能是一个更好的测试。

于 2013-01-12T09:10:45.290 回答