Jquery表单验证

Jquery表单验证,jquery,forms,Jquery,Forms,我使用这个脚本来查看用户是否在客户端留下了无效的输入 $('#login_submit').click(function() { var login_email = $('#login_email').val(); var login_password = $('login_password').val(); if (login_email.length == 0) { $('#login_email').css('background', 'red'); } if (login

我使用这个脚本来查看用户是否在客户端留下了无效的输入

$('#login_submit').click(function() {

var login_email = $('#login_email').val();
var login_password = $('login_password').val();

if (login_email.length == 0) {

    $('#login_email').css('background', 'red');
}

if (login_password.length == 0) {

    $('#login_password').css('background', 'red');
}
});
我无法解决的一件事是如何阻止表单提交。我试过返回false但这会使输入字段背景闪烁红色

问候您,

<input type="submit" onsubmit="return submitValidate()" />
小提琴演示:


只需确保表单中没有带有
name=“submit”
输入。输入中可以包含所有其他属性。

您的问题很可能是因为您正在使用提交按钮:

您需要将其更改为常规按钮:

然后,在函数中,您需要在代码有效时提交表单:
$('#formId')。提交()

好的,我试试这个,你能解释一下为什么不同吗?我不明白,谢谢。您希望收到的不是被单击的呼叫,而是被提交的呼叫。如果你要求接收被点击的呼叫,你的表单会说:好的,所以你在被点击时要执行这个功能,然后我会提交,而现在它说:好的,我已经被点击了,但我想提交,但在此之前我需要运行这个代码。你知道这一切都是为了秩序。如果你只要求onclick,它仍然会提交,但如果你要求onsubmit,你的表格不会提交,如果你不要求提交。这有点老派。使用jquery,您可以覆盖单击和提交功能。我喜欢jquery,但这对您来说太简单了,为什么要使用jquery,而您可以使用旧方法。您知道这只是我所说的jquery版本。
function submitValidate() {
var login_email = $('#login_email').val();
var login_password = $('login_password').val();
var submit = true;

if (login_email.length == 0) {
   submit = false;
   $('#login_email').css('background', 'red');
}

if (login_password.length == 0) {
   submit = false;
   $('#login_password').css('background', 'red');
}
return submit;
}
$('#your-form-id').submit(function() {

    var errors = 0;
    var login_email = $('#login_email').val();
    var login_password = $('login_password').val();

    if (login_email.length == 0) {
       $('#login_email').css('background', 'red');
       errors++;
     }

    if (login_password.length == 0) {
        $('#login_password').css('background', 'red');
        errors++;
     }

   return errors ? false : true;
});