1

基本的に、mysqlデータベースからの一連の動的チェックボックスを表示するフォームがあります-これは正常に機能します。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 に答える