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注意!请纠正错误
错误,然后重试。“;
回显“ ”;
回声';
}否则{
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)