我有一个表单将用户插入数据库。另一方面,我有两个密码验证脚本和一个检索php结果的ajax脚本。
现在这两个脚本分开工作。
我应该怎么做才能在密码验证后运行ajax脚本?
密码验证
function Validate() {
var password = document.getElementById("UserPwd").value;
var confirmPassword = document.getElementById("ConfirmUserPwd").value;
if (password != confirmPassword) {
alert("Please enter the same password");
return false;
}
return true;
}
脚本
$.ajax({
url: "insert_sp.php",
method: "POST",
data: {submit: 'true'},
success: function(response) {
var data = JSON && JSON.parse(response) || $.parseJSON(response);
alert(data);
}
});
更新
isset:if(isset($_POST['Submit']))
按钮:<input type="submit" name="Submit" value="Submit"/>
$(function() {
$("#myForm").on("sumbit", function(e) {
e.preventDefault();
var password = $("#UserPwd").val(),
confirmPassword = $("#ConfirmPassword").val();
if ($.trim(password) === password &&
password !== "" &&
password === confirmPassword) {
$.ajax({
url: "insert_sp.php",
method: "POST",
data: {
submit: 'true'
},
success: function(response) {
var data = JSON && JSON.parse(response) || $.parseJSON(response);
alert(data);
}
});
}
else {
alert("Please enter the same password");
}
});
});
答案 0 :(得分:2)
永远不要在表单中调用任何“提交”。如果需要,它将隐藏提交事件。
使用表单的提交事件和event.preventDefault而不是提交按钮单击事件
如果你有jQuery,为什么不一直使用它?
在插入
我无法让您成为正在运行的代码段,因为SO不允许在其网页中提交。这是代码 - 它应该按设计工作
$(function() {
$("#myForm").on("submit", function(e) {
e.preventDefault(); // cancel form submission
var password = $("#UserPwd").val(),
confirmPassword = $("#ConfirmPassword").val();
console.log(password,confirmPassword)
if ($.trim(password) === password && // spaces?
password !== "" && // empty?
password === confirmPassword) { // the same?
$.ajax({
url: "insert_sp.php",
method: "POST",
data: {
Submit: 'true' // remember to change the $_POST test too
},
success: function(response) {
var data = $.parseJSON(response);
console.log(data);
}
});
} else {
alert("Please enter the same password");
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form id="myForm">
<input type="password" value="" id="UserPwd" /><br/>
<input type="password" value="" id="ConfirmPassword" /><br/>
<input type="submit" name="Submit" value="Submit" />
</form>
答案 1 :(得分:0)
如果成功,请在密码验证后另外调用ajax请求,然后调用下面的ajax函数。
function ajax_request(){
$.ajax({
url: "insert_sp.php",
method: "POST",
data: {submit: 'true'},
success: function(response) {
var data=JSON&&JSON.parse(response)||$.parseJSON(response);
alert(data);
console.log(data);
}
});
function Validate() {
var password = document.getElementById("UserPwd").value;
var confirmPassword = document.getElementById("ConfirmPassword").value;
if (password == confirmPassword) {
ajax_request();
}else{
alert("Wrong Password");
return false;
}
}