我在这里查了一下,这里的解决方案都没有解决我的问题。 我似乎无法使preventDefault()工作。代码如下:
Jquery的:
$("#changepassword").submit(function(event) {
event.preventDefault(); // stop normal form submission
$.ajax({
url: "changePassword.php",
type: "POST",
data: $(this).serialize(), // you also need to send the form data
dataType: "html",
success: function(html) {
$("#s-window").append(html);
}
});
});
HTML:
<div id="s-window">
<form id="changepassword" action="changePassword.php" method="POST">
<input type="password" name="currentPassword" placeholder="Current Password"/>
<input type="password" name="newPassword" placeholder="New Password"/>
<input type="password" name="confirmPassword" placeholder="Confirm Password"/>
<input class="button" type="submit" value="Change Password" />
</form>
</div>
我的空气中没有错误。 changePassword.php按预期工作。但是,不是更新我的#s窗口,而是将其重定向到changePassword.php页面
如何重新编码以使页面上的所有内容都发生?
答案 0 :(得分:1)
您可以使用return false;
尝试这种方式,如果您有任何疑惑,请参阅此处event.preventDefault() vs. return false
$("#changepassword").submit(function(event) {
//event.preventDefault(); // stop normal form submission
return false;
});
答案 1 :(得分:1)
您需要等到文档准备就绪:
$(document).ready(function(){
$("#changepassword").submit(function(event) {
event.preventDefault(); // stop normal form submission
$.ajax({
url: "changePassword2.php",
type: "POST",
data: $(this).serialize(), // you also need to send the form data
dataType: "html",
success: function(html) {
$("#s-window").append(html);
}
});
});
});
答案 2 :(得分:0)
在你的ajax呼叫更改dataType: "html"
到dataType: "script"
答案 3 :(得分:0)
至少在IE中,event
是一个全局变量(根据Is 'event' a reserved word in JavaScript?)。这可能不是您的问题的原因,但是改变您的命名可能是个好主意。