我正在使用 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);
}
});
// }
});
});
这里是相关的input标签:
<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(); 时要停止提交按钮的默认操作,输入字段的 required 属性不起作用。为什么会这样呢?能解决吗?
最佳答案
对于问题 2:
如果您为提交按钮上的click
事件调用preventDefault
,则默认行为(启动提交)将被阻止,因此输入字段不会被阻止已检查。
您必须监听 form
的 submit
事件,并防止其默认行为,因为 submit
事件是发送的在检查输入元素之后和提交表单
之前。
$(document).ready(function() {
$("#signupform").on('submit', function(e) {
e.preventDefault();
//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);
}
});
// }
});
});
关于javascript - 何时何地不成功: value executes in jQuery Ajax method?( header 位置未更改),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36227772/