2

ASP.Net コントロールで動作する次のコードがあります。

結果変数(res)が「NO」に等しいときに、ボタンの「onclick」イベントにJavaScriptコードを追加しようとしています。問題は、最初に値を「onclick」に割り当てると正常に動作しますが、removeAttr が実行され、再び関数が呼び出され、res が再び「NO」に等しくなると、「 onclick」イベント。それで、これの何が問題なのですか?ご協力いただきありがとうございます。=)

凡例: - HLevel (テキストボックス) - PSave (LinkBut​​ton)

 $('#HLevel').blur(function () {
      // SOME CODE HERE BEFORE THE ISSUE CODE
      var res = $(msg).find("string").text();
      if (res == "NO") {
         $('#PSave').attr("onclick", "javascript:return confirm('some text');");
      } else {
        $('#PSave').removeAttr("onclick");
      }

  });
4

3 に答える 3

1

クリック イベント ハンドラを次のように変更する必要があります。

$('#HLevel').blur(function () {
     // SOME CODE HERE BEFORE THE ISSUE CODE
     var res = $(msg).find("string").text();
     if (res == "NO") {
        $('#PSave').click(function(){
            return confirm('some text');
        });
     } else {
        $('#PSave').unbind('click');
     }

 });
于 2010-07-27T19:47:24.237 に答える
1

javascript onclick ハンドラーの代わりに jquery を使用してみませんか。それらは面倒です。

$('#PSave').click(function(){
    confirm('some text');

});

removeAttr の代わりに unbind を使用します。

$('#PSave').unbind();
于 2010-07-27T19:48:06.810 に答える
1

unbind()メソッドとclick()メソッドを使用します。

if (res == "NO") {
    $('#PSave').click(function() {return confirm('some text');});
} else {
    $('#PSave').unbind("click");
}

jQuery を使用する場合は、可能な限りそれを利用し、スタイルを混在させないようにしてください。

于 2010-07-27T19:48:20.650 に答える