我正在尝试使用jquery向php提交表单数据。我不想默认提交。代码工作正常。我不知道在哪里使用event.preventDefault();
下面是我的jquery代码
<script>
$(function () {
$("#submit").click(function () {
var password = $("#password").val();
var confirmPassword = $("#confirm_password").val();
var dataString='password='+ password + 'confirmPassword='+ confirmPassword;
if (password != confirmPassword) {
alert("Passwords and Confirm Password Should match.");
return false;
}
else{
$.ajax({
type: "POST",
url: "update-password.php",
data: dataString,
success: function(result){
alert(result)
}
});
}
});
});
</script>
答案 0 :(得分:3)
请勿使用click
事件来控制表单提交。它被键盘表单提交绕过!始终使用submit
事件。
当您通过Ajax提交表单时,您可以使用e.preventDefault()
e.g。
$(function() {
$("form").submit(function(e) {
e.preventDefault();
var password = $("#password").val();
var confirmPassword = $("#confirm_password").val();
var dataString = 'password=' + password + 'confirmPassword=' + confirmPassword;
if (password != confirmPassword) {
alert("Passwords and Confirm Password Should match.");
} else {
$.ajax({
type: "POST",
url: "update-password.php",
data: dataString,
success: function(result) {
alert(result)
}
});
}
});
});
注意:由于您没有对提交做任何特别的事情,除非您需要,否则您可能不使用Ajax。只需有条件地返回true
或false
。
返回false与e.preventDefault()
和 e.stopPropagation()
相同。
e.g。
$(function() {
$("form").submit(function() {
var password = $("#password").val();
var confirmPassword = $("#confirm_password").val();
var dataString = 'password=' + password + 'confirmPassword=' + confirmPassword;
if (password != confirmPassword) {
alert("Passwords and Confirm Password Should match.");
return false
}
});
});
一般建议:请勿使用alert
与用户进行互动。而是在页面上显示验证消息。