[英]jquery validation doesnt react on succes
我正在尝试在表单上进行jquery验证,一切都可以检查输入,但是当一切正确时,它就不会“进一步”并返回任何内容。
function validateFields() {
var fname = $("input#fname").val();
if (fname == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">First name missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var lname = $("input#lname").val();
if (lname == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Last name missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var femail = $("input#femail").val();
if (femail == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var lemail = $("input#lemail").val();
if (lemail == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Email missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var cemail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
if (femail !== "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
if(!cemail.test(femail)){
$( "#Fejl" ).html("<p class=\"c\">Your email is invalid.</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
}
var fpassword = $("input#fpassword").val();
if (fpassword == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Password missing!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var lpassword = $("input#lpassword").val();
if (lpassword == "") {
$( "#WrapSu" ).css({"border-radius":"0px 0px 3px 3px"});
$( "#Fejl" ).html("<p class=\"c\">Confirm password!</p>");
$( "#Fejl" ).slideDown( "slow" );
return false;
}
var datastring = 'fname='+ fname +'&lname='+ lname +'&email='+ femail +'&password='+ fpassword;
$.ajax({
type: "POST",
url: "opret.php",
data: dataString,
success: function() {
if(responseText == 1) {
$( "#Fejl" ).html("<p class=\"c\">virker</p>");
} else { // else blank response
$( "#Fejl" ).html("<p class=\"c\">virker2</p>");
}
}
});
return false;
};
$('form#opret').on('submit',function(e) {
e.preventDefault();
var success=validateFields();
});
而且我不知道需要更改什么,我做了很多尝试,但经验停止了,我不知道它是什么。
我希望任何人都可以友好地解释我的错误,以便我将学会:-) php代码:
1<?php
include("config.php");
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$email=$_POST['femail'];
$password=$_POST['fpassword'];
$memails = mysql_result(mysql_query("SELECT COUNT(*) FROM Users WHERE email = '$email'"),0); //check for email exist
if($memails < 1){
echo "1";
} else {
echo "2";
}
?>
您正在尝试将参数作为某种数据发送。 您需要像这样发送查询字符串...
$.ajax({
type: "POST",
url: 'opret.php' + '?' + dataString,
success: function(responseText) {
if(responseText == "1") {
$( "#Fejl" ).html("<p class=\"c\">virker</p>");
} else { // else blank response
$( "#Fejl" ).html("<p class=\"c\">virker2</p>");
}
}
});
...,然后让您的PHP遍历$ _POST以获取变量,或将数据作为JSON发送,然后将其解码为PHP脚本中的对象,如下所示...
var data = {
'fname': fname,
'lname': lname,
'email': femail,
'password': fpassword
};
$.ajax({
type: "POST",
dataType: 'json',
data: data,
url: "opret.php",
success: function(responseText) {
if(responseText == "1") {
$( "#Fejl" ).html("<p class=\"c\">virker</p>");
} else { // else blank response
$( "#Fejl" ).html("<p class=\"c\">virker2</p>");
}
}
});
编辑:固定追加查询字符串。
编辑2:更新为处理实际的PHP返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.