基本上我有一个表单,它显示了 mysql 数据库中的一堆动态复选框——这很好用。我有一个名为“default”的属性,我将 mysql 条目的值放入其中,以便稍后我可以确定用户是否更改了最初显示的复选框值。下面是生成这些复选框的 while 语句的一部分:
printf("\t<tr class='recordrow'>
\n\t\t<td><a class='page_modal' href='#mWindow%s' target='_blank'>%s</a></td>
\n\t\t<td class='ppath'>%s</a></td>
\n\t\t<td>%s</td>
\n\t\t<td><input type='checkbox' class='checkbox' name='$page_path current' default='$currentcheckbox' $currentcheckbox/><div class='page_dialog' id='mWindow%s'><img src='exit.png' class='close' alt='close'/><img src='newwin.jpg' alt='new window'/><div id='content_section'>%s</div></div> </td>
\n\t\t<td><input type='checkbox' class='checkbox' name='$page_path prospective' default='$prospectivecheckbox' $prospectivecheckbox/></td>
\n\t\t<td><input type='checkbox' class='checkbox' name='$page_path faculty' default='$facultycheckbox' $facultycheckbox/></td>
\n\t\t<td><input type='checkbox' class='checkbox' name='$page_path staff' default='$staffcheckbox' $staffcheckbox/></td>
\n\t\t<td><input type='checkbox' class='checkbox' name='$page_path external' default='$externalcheckbox' $externalcheckbox/></td>
现在我有一个小 JQuery 脚本,我认为它应该做我想做的事情,但是我的逻辑或某些东西似乎有问题....基本上当用户对复选框进行更改时,触发 Jquery 脚本并它会弹出一个警报,说明复选框是否被选中或未选中。然后我有一个 if 语句,它应该查看复选框的选中状态是否与我的默认属性中的原始值不同。我在这里做错了什么?如果用户更改复选框选中/未选中状态,我想查看我的警报“值与原始值不同”。
$(document).ready(function() {
$('.checkbox').change(function() {
if($(this).is(":checked")) {
var returnVal = confirm("checked");
if($(this).attr("default").val() != returnVal)
{
alert("Value is different from original");
//put element in changed item array
}
}
else{
var returnVal = confirm("unchecked");
var returnVal = "0";
if($(this).attr("default").val() != returnVal)
{
alert("Value is different from original");
//put element in changed item array
}
}
});
当我选中和取消选中复选框时,我的 chrome 开发工具中出现此错误:Uncaught TypeError: Object 0 has no method 'val'