1

Plzはjsfiddleリンクを参照してください。 http://jsfiddle.net/7gbNK/17/

私のコードは次のとおりです。

<form action="" method="POST">
     <table width="50%" cellpadding="4" cellspacing="1" border="1">
         <tr>
             <td width="5%" align="center"><input name="chk_surname" id="chk_surname" type="checkbox" onclick="enable(this.id,'surname')"></td>
             <td width="10%" align="center">Surname</td>
             <td width="35%" style="display:none;" align="center"><input type="text" name="surname" id="surname" value-="surname" /></td>
         </tr>
     </table>
</form>

以下は私のJavascriptです:

<script type="text/javascript">
    function enable(id,name)
    {
        alert("hi");

        $(document).on('change','#'+id, function() 
        {
            var checked = $(this).is(":checked");

            var index = $(this).parent().index();

            if(checked) {
                $('#surname').fadeIn(100);
            }
            else {
                $('#surname').fadeOut(100);
            }
        });
    }
</script>

なぜ私はここで警告を受けていないのですか。前もって感謝します。

4

3 に答える 3

1

2つの問題があり、

ライブデモ

  • 2 番目のドロップダウンでラップなし - インを選択します

ここに画像の説明を入力

  • hi は、変数を引用符で囲んで文字列にすることになっています。

変化する

alert(hi);

alert('hi');
于 2013-10-11T07:50:08.870 に答える
1

コードに複数の問題があります。

1) jQuery v1.6 を使用している

ただし.on()、1.7+ に属している場合は、jQuery バージョンを更新するか、使用してください.bind()

2) alert(Hi)// 引用符を追加できません

change3)イベント内にclickイベントを割り当てることはできchangeますが、 をクリックすると 2 回目以降にイベントが発生しますcheckbox。したがって、それらを別々に保管してください。

最後に、コードは次のようになります

function enable(id, name) {
    alert('hi');
}

$(document).on('change', '#chk_surname', function () {
    var checked = $(this).is(":checked");    
    var index = $(this).parent().index();    
    if (checked) {
        $('.td_surname').eq(index).fadeIn(100);
    } else {
        $('.td_surname').eq(index).fadeOut(100);
    }
});

更新されたフィドル

于 2013-10-11T07:46:21.253 に答える