Javascript 表单成功和表单验证消息的不同功能

Javascript 表单成功和表单验证消息的不同功能,javascript,jquery,ajax,function,Javascript,Jquery,Ajax,Function,我刚刚得到了一些函数和回调的帮助,以便在提交后在我的表单上获得此动画: $("#message").show().delay(5000).fadeOut('fast', function(){ $("#slide_panel").slideToggle("slow"); }); 不过,我现在遇到的问题是,如果有人必须在没有输入正确详细信息的情况下提交表单,错误消息也会弹出(与感谢消息在同一个div“message”中弹出),延迟5秒钟,然后关闭表

我刚刚得到了一些函数和回调的帮助,以便在提交后在我的表单上获得此动画:

            $("#message").show().delay(5000).fadeOut('fast', function(){
            $("#slide_panel").slideToggle("slow");
});
不过,我现在遇到的问题是,如果有人必须在没有输入正确详细信息的情况下提交表单,错误消息也会弹出(与感谢消息在同一个div“message”中弹出),延迟5秒钟,然后关闭表单

当然,我不希望它关闭表单,而是显示错误消息5秒钟,然后淡出错误消息

我需要在这里添加的任何内容:

function(data){
            document.getElementById('message').innerHTML = data;
            $('#message').slideDown('slow');
            $('#contactform img.loader').fadeOut('fast',function()
{$(this).remove()});
            $('#submit').removeAttr('disabled');
            if(data.match('success') != null);
            $('#name').val( "" );
            $('#email').val( "" );
            $('#phone').val( "" );
            $('#dayin').val( "" );
            $('#dayout').val( "" );
            $('#comments').val( "" );
            $('#verify').val( "" );
            $("#message").show().delay(5000).fadeOut('fast', 
function(){
            $("#slide_panel").slideToggle("slow");
});

        }
    );

    });

    return false;

});

});
我假设我需要执行类似于以下代码的操作:

if(data.match('success') != null);
在my contact.php表单中。。。。我有这个:

if (isset($_POST['verify'])) :
    $posted_verify   = $_POST['verify'];
    $posted_verify   = md5($posted_verify);
else :
    $posted_verify = '';
endif;

// Important Variables
$session_verify = $_SESSION['verify'];

if (empty($session_verify)) $session_verify = $_COOKIE['verify'];

$error = '';

    if(trim($name) == '') {
        $error .= '<li>Your name is required.</li>';
    }

    if(trim($email) == '') {
        $error .= '<li>Your e-mail address is required.</li>';
    } elseif(!isEmail($email)) {
        $error .= '<li>You have entered an invalid e-mail address.</li>';
    }

    if(trim($phone) == '') {
        $error .= '<li>Your phone number is required.</li>';
    } elseif(!is_numeric($phone)) {
        $error .= '<li>Your phone number can only contain digits.</li>';
    }

    if(trim($comments) == '') {
        $error .= '<li>You must enter a message to send.</li>';
    }

    if($session_verify != $posted_verify) {
        $error .= '<li>The verification code you entered is incorrect. 
</li>';
    }

    if($error != '') {
        echo '<div class="error_message">Attention! Please correct the  
errors below and try again.';
        echo '<ul class="error_messages">' . $error . '</ul>';
        echo '</div>';

    } else {

    if(get_magic_quotes_gpc()) { $comments = stripslashes($comments); }
if(设置($\u POST['verify']):
$posted_verify=$_POST['verify'];
$posted\u verify=md5($posted\u verify);
其他:
$posted_verify='';
endif;
//重要变量
$session\u verify=$\u session['verify'];
if(空($session\u verify))$session\u verify=$\u COOKIE['verify'];
$error='';
如果(修剪($name)=''){
$error.='
  • 需要您的姓名。
  • ; } 如果(修剪($email)=''){ $error.='
  • 需要您的电子邮件地址。
  • ; }elseif(!iEmail($email)){ $error.='
  • 您输入的电子邮件地址无效。
  • ; } 如果(修剪($phone)=''){ $error.='
  • 需要您的电话号码。
  • ; }elseif(!是数字($phone)){ $error.='
  • 您的电话号码只能包含数字。
  • ; } 如果(修剪($注释)=''){ $error.='
  • 您必须输入要发送的消息。
  • ; } 如果($session\u verify!=$posted\u verify){ $error.='
  • 您输入的验证码不正确。
  • '; } 如果($error!=''){ echo注意!请纠正错误 错误,然后重试。“; 回显“
      ”.$error.
    ”; 回声'; }否则{ if(get_magic_quotes_gpc()){$comments=stripslashes($comments);}

    我需要在这里做什么?还是只需要编辑javascript文件?

    如果使用JSON调用代码中的某个函数,您将能够返回status属性

    我在当前项目中也使用了它,下面是我如何使用它的示例:

    var link = '/brainbattleJSON/MarkAssignmentAsInProgress';
                    $(this).hide();
                    $.getJSON(link, { questionId: qId }, function (json) {
                       if(json.status == "ok"){
                       //do this
                       }else{
                       //do this
                       }
    
                    });
    
    代码隐藏:

    // your function with validation
    // if the form is valid make status "ok" otherwise put anything else
    Return Json(New With {.status = "ok"});
    
    我希望这能对你有所帮助:)

    编辑:

    您需要将var link的值更改为检查表单的函数路径。 然后,您现在说如果您的错误!='',您将返回json。 在这里,你会说:

    return json(new with{.status = 'error', .errors = 'yourErrors'})
    
    因此,对于错误,发送一个数组可能很有用,以防表单上出现超过1个错误。
    所有消息将不再在带有echo的php中显示,但您必须使用javascript将错误放在那里。

    我在以下链接中有一个已上载的注册和登录页面(zip文件):


    它使用相同的div显示成功和错误消息。您可以尝试并实现您正在寻找的内容,并添加淡出效果。

    您好,请检查我对上面问题的编辑…我在中添加了一些可能需要编辑的php代码?谢谢!我已下载了您的zip文件,查看了您的javascript文件,但您的代码看起来不同…hone我真的不知道该怎么做(我才刚刚开始学习javascript)