使用复选框的“onclick”时,可以轻松防止默认操作?

时间:2013-03-21 17:50:13

标签: javascript jquery web-applications

这是我目前的解决方案:

HTML

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

javscript:

function do_stuff() {   
    return false;
}

function do_stuff2() {   
    return true;
}

http://jsfiddle.net/NXKMH/12/

我希望避免在onclick调用中使用“return”(例如onclick="do_this();"而不是onclick="return do_this();")。我想过使用jquery提供的preventDefault()函数,但似乎无法正常工作。另外,如果可能的话,我不想绑定“click”事件。我更喜欢使用“onclick”。 (更容易使用加载ajax的内容)

思想?

2 个答案:

答案 0 :(得分:6)

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

所以......

onclick='function(); return false;' 

应该解决它......

答案 1 :(得分:5)

您是否尝试在do_stuff()中调用event.stopPropagation()方法...当然,您需要传递。

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 ---//
}