关于javascript:使用复选框“onclick”时防止默认操作的简便方法?

Easy way to prevent default action when using “onclick” of a checkbox?

本问题已经有最佳答案,请猛点这里访问。

这是我目前的解决方案:

HTML

1
2
<input type="checkbox" value="1" onclick="return do_stuff();" />
<input type="checkbox" value="1" onclick="return do_stuff2();" />

JavScript:

1
2
3
4
5
6
7
function do_stuff() {  
    return false;
}

function do_stuff2() {  
    return true;
}

http://jsfiddle.net/nxkmh/12/

我想避免在onclick调用中需要"返回"(例如onclick="do_this();",而不是onclick="return do_this();")。我曾考虑过使用jquery提供的preventDefault()函数,但似乎无法使其正常工作。另外,如果可能,我不想绑定"click"事件。我更喜欢用"onclick"。(更容易使用Ajax加载的内容)

思想?


事件处理程序的返回值决定是否也应该执行默认的浏览器行为。

所以…

1
onclick='function(); return false;'

应该修复它…


您是否尝试在do-tuff()中调用event.stoppropagation()方法…你当然需要通过考试。

1
2
3
4
5
6
7
8
9
10
11
12
13
onclick = 'do_stuff(event)'

function do_stuff(ev) {

  if(ev.stopPropagation) {
    // for proper browsers ...
    ev.stopPropagation();
  } else {
      // internet exploder uses cancelBubble ...
      window.event.cancelBubble = true;
  }
  // --- do some more stuff ---//
}