使用jQuery和php进行表单验证

使用jQuery和php进行表单验证,php,jquery,Php,Jquery,我有一个使用jQuery和php验证的表单。因此,基本上,如果php响应“输入必须填写”,jQuery应该在该输入周围加上一个红色边框,但只有在提交两次表单后,该功能才起作用。 我解释说:如果我提交时输入未填充,php文件会回显“输入必须填充”,但只有当我再次按下提交按钮时,输入才会变为红色 $("form#maj_email").submit(function(){ var _data = $(this).serialize() $.ajax({ type: 'POST',

我有一个使用jQuery和php验证的表单。因此,基本上,如果php响应“输入必须填写”,jQuery应该在该输入周围加上一个红色边框,但只有在提交两次表单后,该功能才起作用。
我解释说:如果我提交时输入未填充,php文件会回显“输入必须填充”,但只有当我再次按下提交按钮时,输入才会变为红色

$("form#maj_email").submit(function(){
var _data = $(this).serialize()
$.ajax({
        type: 'POST',
        url: 'validation_profil.php?var=maj_email',
        beforeSend: function(){
            $("div#ajax_icon_maj_email").css({background:"url('http://localhost/www3/images/ajax_loader.gif')"})
            $("div#error_maj_email").hide()
             if( $("div#error_maj_email").text()=="Email syntaxe incorrecte"){
               $("form#maj_email input:[name=email]").css({border:"1px solid red"})
             }

        },
        data:_data,
        cache: false,
        success: function(html){
            $('div#error_maj_email').html(html)
            $("div#ajax_icon_maj_email").css({background:"url('none')"})
            $("div#error_maj_email").fadeIn()
        }
     })
})

看起来表单是通过表单而不是ajax调用提交的。您需要防止此行为,以使其正常工作:

$("form#maj_email").submit(function(e){
    var _data= $(this).serialize();
    $.ajax({
        type: 'POST',
        url: 'validation_profil.php?var=maj_email',
        beforeSend: function(){
            $("div#ajax_icon_maj_email").css({background:"url('http://localhost/www3/images/ajax_loader.gif')"})
            $("div#error_maj_email").hide()
            if( $("div#error_maj_email").text()=="Email syntaxe incorrecte"){
                $("form#maj_email input:[name=email]").css({border:"1px solid red"})
            }
        },
        data:_data,
        cache: false,
        success: function(html){
            $('div#error_maj_email').html(html)
            $("div#ajax_icon_maj_email").css({background:"url('none')"})
            $("div#error_maj_email").fadeIn()

        }
    });
    e.preventDefault();
    return false;
})

刚试过,但仍然不起作用。它总是有效的,但在第二次按submit时……好的,我将if条件改为success事件,现在一切正常。