2

我有下一个代码来处理 ASP.Net 控件。

当结果变量(res)等于“NO”时,我正在尝试向按钮上的“onclick”事件添加一些 javascript 代码。问题是它第一次将值分配给“onclick”它工作正常,但是当执行 removeAttr 并再次调用该函数并且 res 再次等于“NO”时它不会在“ onclick”事件。那么这有什么问题呢?谢谢你的帮助。=)

图例: - HLevel(文本框) - PSave(链接按钮)

 $('#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

为什么不使用 jquery 而不是 javascript onclick 处理程序。那些很乱。

$('#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 回答