1

基本上我有一个表单,它显示了 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'

4

1 回答 1

0

$(this).attr("default")返回一个包含属性值的字符串。单独使用它而不调用.val().

于 2014-01-16T22:35:27.700 回答