【问题标题】:Avoid posting back when user clicks html button避免在用户单击 html 按钮时回发
【发布时间】:2014-05-08 17:36:12
【问题描述】:

我想避免在用户单击 html 按钮时回发。因为我想使用 javascript 显示一个弹出窗口。单击按钮时我不想回发。

function ShowEditChoicesPopup() {
    // I want to show some pop up here.
    $("popupdiv").show();
    return false;
}

我使用的标记是:

<button onclick="javascript:ShowEditChoicesPopup();"> Edit Choices </button>

请提出一些想法。

【问题讨论】:

  • 该代码不会回发。
  • 试试
  • 代码是否在&lt;form&gt; 元素中?如果是这样,请将其包含在您的问题中,因为了解这一点很重要。

标签: javascript jquery html asp.net


【解决方案1】:

申请event.preventDefault();

 function ShowEditChoicesPopup(event) {
   event.preventDefault();

    $("popupdiv").show();

 }

【讨论】:

    【解决方案2】:

    试试下面的代码 sn-p。

    <button onclick="javascript:return ShowEditChoicesPopup();">
    

    <button onclick="javascript:return ShowEditChoicesPopup(); return false;">
    

    <button onclick="javascript:ShowEditChoicesPopup(); return false;">
    

    【讨论】:

      【解决方案3】:

      试试:

      function ShowEditChoicesPopup() {
           // I want to show some pop up here
           $("popupdiv").show();
              return false;
           }
          return false;
      }
      

      您需要为 ShowEditChoicesPopup() 提供第二个 return false,这应该会取消表单提交。这假设代码位于&lt;form&gt; 块中。

      【讨论】:

      • 您返回false ShowEditChoicesPopup() 范围之外
      • 是的,因为.show() 中的return false 只返回false 到ShowEditChoicesPopup() 上下文,这不会停止回发。
      • 你不应该让event.preventDefault();来阻止它吗?
      • 其实是一样的,return falsee.preventDefault() 都会有相同的结果,即没有回发。
      • 活动在某些情况下不可用。当我从 onclick 打电话时。某些浏览器不会将事件作为全局事件,但 chrome 会..
      【解决方案4】:

      使用 event.preventDefault();这将阻止元素的默认行为并执行指定的功能

      【讨论】:

        【解决方案5】:

        按照示例进行:

        http://jsfiddle.net/guinatal/ct8uS/1/

        HTML

        <form>
            <button onclick="return ShowEditChoicesPopup();"> Edit Choices </button>
            <div id="popupdiv" style="display:none">popupdiv</div>
        </form>
        

        JS

        function ShowEditChoicesPopup() {
             // I want to show some pop up here
             $("#popupdiv").show();
        
            return false;
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-04-15
          • 2011-07-16
          • 2023-04-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多