在表单提交时显示错误

时间:2015-02-03 16:52:16

标签: javascript jquery html forms

我想用jQuery显示一个错误,还没有错误检查,但我只是想了解更多有关jQuery的信息,似乎我无法使用它。

因此,我想在按下提交按钮时显示错误。我试过,使用jquery设置可见性,可见onclick和事先看不见但是它没有用。它显示了一秒钟,然后消失了。如何在下次提交按钮之前将其显示在那里?

<form id="quick-register" action="">
    Username: <input type="text" name="quick-username"> <br>
    <span id="quick-user-wrong">Wrong Username (a-z, A-Z, 0-9)</span>

    Password: <input type="password" name="quick-password"> <br>
    <span id="quick-pass-wrong">Wrong Password</span>

    Repeat Password: <input type="password" name="quick-password2"> <br>
    <span id="quick-pass2-wrong">Password doesn't match</span>

    E-mail: <input type="email" name="quick-email"> <br>
    <span id="quick-email-wrong">Invalid E-mail Address</span>

    <button id="quick-submit">Register</button>
</form>

的jQuery

$(function () {
    $("#quick-submit").one("click", function () {
        $("#quick-user-wrong").css("visibility", "visible");
    });
});

2 个答案:

答案 0 :(得分:0)

当您提交表单时,页面会在之后重新加载(除非您使用的是AJAX) 由于这次重新加载,错误只显示了一下。 在你的jQuery代码中

$("form").on('submit', function(evt){
   //if form errors
   evt.preventDefault();       
   //showerror
   //else do nothing
});

这将阻止提交页面,因此错误将显示并保持显示

用户可以更改错误,然后再次单击“提交”按钮。

答案 1 :(得分:0)

您可以创建一个将在表单提交时触发的事件侦听器,您可以在以后取消并提交。

$( "#quick-register" ).submit(function( e ) {
  //cancel submission
  e.preventDefault();

  // .... your error handling/etc ...

  if(noerror){
     //submit form later
     $(this).unbind("submit").submit();
  }

});

目前的问题是表单正在提交。这会导致页面刷新,这就是为什么你只能看到你的javascript工作一小段时间。