我正在使用jQuery Ajax提交表单。
数据已成功提交,但存在一些问题。当我在此代码中添加注释语句时, success:function(){} 不会运行(位置不会更改)。
问。 1 当我删除这些语句时,它会运行。我不明白这个逻辑。它何时实际执行以及检查 xy 对此有何影响?
这是我的 Ajax 代码:
$(document).ready(function(){
$("#button").click(function(){
**//FOLLOWING TWO LINES MAKES SUCCESS NOT RUN**
//var **xy**= $("#digits").val();
//if(xy!=""){
$.ajax({
url: "submitform.php",
type: "POST",
data: $('#signupform').serialize(),
success: function(result){
$(location).attr('href', 'login2.php');
},
error: function(){
alert(error);
}
});
// }
});
});
以下是输入标记:
<form id="signupform" name="form1" method="post" enctype="multipart/form-data">
<input id="digits" type="text" name="phone" maxlength="10" placeholder="Enter your phone no." required />
......
Q.2 当我写event.preventDefault();要停止提交按钮的默认操作,输入字段的必需 atrributes不起作用。为什么会这样?可以解决吗?
答案 0 :(得分:1)
问题2:
如果您在提交按钮上为preventDefault
的事件调用click
,则会阻止默认行为(启动提交),因此不会检查输入字段。
您必须侦听submit
的{{1}}事件并阻止此事件的默认行为,因为在检查输入元素之后和之前发送form
事件submit
已提交。
form
答案 1 :(得分:1)
当你使用jquery ajax时,有两种类型的结果:
400 - 成功功能捕获的OK状态 402或500是内部错误,它们将由错误函数捕获。
现在,在你的错误函数中,你试图打印一个不存在的错误变量。
另外,当你使用preventDefault时,你有一个处理de event的pass变量也取消了。