【问题标题】:Jquery: Prevent reloading page when pressing input type=submitJquery:按输入类型=提交时防止重新加载页面
【发布时间】:2011-10-05 23:33:23
【问题描述】:

我在 MVC 3 (Razor) 项目中有以下代码:

<div class="user_info" id="id_user_info">
   <script type="text/ecmascript"  >
      $(function () {
         $('#buttonClear').live('submit', function (e) { return false; });
         $('#buttonClear').bind('click', function () {
            $('username').value = "";
            $('password').value = "";
         });
   </script>
   @using (Html.BeginForm("Login", "Account", FormMethod.Post, new { id = "loginForm" }))
   {
      <label for="username">Enter:</label>
      <input name="username" id="username" type="text" value="" /><br />
      <input name="password" id="password" type="password" value="" /><br />
      <input name="rememberMe" id="rememberMe" type="checkbox" value="true" />
      <label for="rememberMe">Remember me?</label><br />
      <input id="buttonLogin" type='submit' value="Login" />
      <input id="buttonClear" type='submit' value="Clear" />
   }
</div>

由于样式的原因,我需要将“buttonClear”保留为类型 sumbit,但我需要禁用/避免/防止它在按下后重新加载页面。

有没有办法从“buttonClear”中删除“提交事件”?

谢谢 里卡多

【问题讨论】:

    标签: jquery post input submit double


    【解决方案1】:

    虽然我意识到这篇文章有点老,但我也想提供这个答案以作记录。

    <input id="buttonClear" type='submit' value="Clear" />
    

    通常情况下,一个表单不会有多个提交按钮。此外,由于您实际上并不想要提交功能,因此使用这种类型是不准确的。最后,您正在寻找“清除”或“重置”功能。你的按钮应该是:

    <input id="buttonClear" type="reset" value="Clear" />
    

    【讨论】:

      【解决方案2】:

      为什么不直接

      $('#buttonClear').click(function() {
          return false;
      });
      

      【讨论】:

        【解决方案3】:

        试试e.preventDefault();

           $('#buttonClear').bind('click', function (e) {
               e.preventDefault();
               $('username').value = "";
               $('password').value = "";
            });
        

        【讨论】:

        • 谢谢,我必须将操作更改为:$('#username').val(""); $('#password').val("");
        【解决方案4】:
        $('#buttonClear').click(function(e){
          // do whatever actions you need here
          e.preventDefault();
        });
        

        【讨论】:

        • 谢谢,我不得不将操作更改为:$('#username').val(""); $('#password').val("");
        【解决方案5】:

        我建议删除您绑定到submit 事件的处理程序,而在click 事件处理程序中使用preventDefault

        $('#buttonClear').bind('click', function (e) {
           e.preventDefault();
           $('username').value = "";
           $('password').value = "";
        });
        

        您尝试过的submit 事件方法将不起作用,因为submit 事件只能绑定到form 元素,而不是提交表单的按钮。

        【讨论】:

        • 谢谢,我不得不将操作更改为:$('#username').val(""); $('#password').val("");
        猜你喜欢
        • 1970-01-01
        • 2017-06-26
        • 2012-08-07
        • 2015-07-04
        • 1970-01-01
        • 2018-01-19
        • 2020-06-29
        • 2019-06-24
        • 1970-01-01
        相关资源
        最近更新 更多