Jquery:按下input type = submit时阻止重新加载页面

时间:2011-07-15 08:41:56

标签: jquery post input submit double

我在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”中删除“提交事件”?

由于 里卡多

5 个答案:

答案 0 :(得分:8)

$('#buttonClear').click(function(e){
  // do whatever actions you need here
  e.preventDefault();
});

答案 1 :(得分:3)

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

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

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

答案 2 :(得分:2)

尝试e.preventDefault();

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

答案 3 :(得分:1)

虽然我发现这篇文章有点老了,但我也想提供这个答案。

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

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

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

答案 4 :(得分:0)

为什么不

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