我想在提交时进行ajax调用。
<form id="editMail" action="" method="post">
<input name="user_email" type="text" value="mail" maxlength="50" id="user_email" style="width:200px;">
<input name="submit" type="submit" id="submit_editMail" value="Ändra">
</form>
$('#editMail').submit(function() {
$.ajax({
type: "POST",
url: "misc/email/activate.php",
data: { action: 'edit', user_email: new_usermail },
success: function(r){
if(typeof(r.error) != 'undefined') {
if(r.error != ''){
alert(r.error);
}
}else{
alert('OK');
}
});
});
但是仍然没有发生任何事情,它没有进行ajax调用,但只是引用了它所在的页面。我尝试添加onClick =“return false;”提交按钮,但什么都没发生
答案 0 :(得分:1)
在处理程序中返回false
。否则,将启动POST请求,然后将发生默认表单提交。您还可以使用事件对象的preventDefault
函数,如下所示:
$('#editMail').submit(function(event) {
$.ajax({
type: "POST",
url: "misc/email/activate.php",
data: { action: 'edit', user_email: new_usermail },
success: function(r){
if(typeof(r.error) != 'undefined') {
if(r.error != ''){
alert(r.error);
}
}else{
alert('OK');
}
}
});
event.preventDefault();
});
修改强>
确保在页面加载完成之前您的脚本未运行。您可能需要将脚本包装在ready
处理程序中,如下所示:
$(document).ready(function() {
$('#editMail').submit(function(event) {
$.ajax({
type: "POST",
url: "misc/email/activate.php",
data: { action: 'edit', user_email: new_usermail },
success: function(r){
if(typeof(r.error) != 'undefined') {
if(r.error != ''){
alert(r.error);
}
}else{
alert('OK');
}
}
});
event.preventDefault();
});
});
答案 1 :(得分:1)
您缺少.submit();
的右括号组你也没必要);关闭你的“成功”功能。
还添加了所需的“return false”以防止默认提交操作。
校正:
$('#editMail').submit(function() {
$.ajax({
type: "POST",
url: "misc/email/activate.php",
data: { action: 'edit', user_email: new_usermail },
success: function(r){
if(typeof(r.error) != 'undefined') {
if(r.error != ''){
alert(r.error);
}
}else{
alert('OK');
}
}
});
return false;
});