Ray*_*Ray 8 forms jquery submit
我得到以下代码:
$.ajax({
type: "POST",
async: false,
url: "CheckIdExist",
data: param,
success: function(result) {
if (result == true){
return false;
}
},
error: function(error) {
alert(error);
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
如果ajax返回值为true,则表单需要停止提交.
但它并没有停止提交表格.
请帮忙.
小智 15
我假设你有类似的东西:
form.submit(function(event) {
$.ajax(...);
});
Run Code Online (Sandbox Code Playgroud)
您希望return false(或调用event.preventDefault())事件处理函数本身,而不是在AJAX调用中,例如:
form.submit(function(event) {
event.preventDefault();
$.ajax(...);
});
Run Code Online (Sandbox Code Playgroud)
这个问题的一个细微变化是:我想使用jquery和ajax向用户显示错误消息,但是如果没有错误则执行正常处理.
假设方法"check"返回一个如果没有错误则为空的响应,并且如果有错误则包含错误.
然后你可以在准备好的函数中做这样的事情:
$("#theform").submit(function() {
var data = { ... }
$.get('/check', data,
function(resp) {
if (resp.length > 0) {
$("#error").html(resp);
} else {
$("#theform").unbind('submit');
$("#theform").submit();
}
});
event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)
那么它是怎样工作的?当触发外部提交函数时,它会构建AJAX调用所需的数据(这里是更高级别的函数get).调度被调度,主操作线程立即继续,但是无条件地停止提交,因此没有明显的事情发生.
一些时间过去了,AJAX调用返回请求的结果.如果非空,则向用户显示结果.
但是,如果响应为空,则提交功能未绑定.这可以防止ssytem通过外部提交功能进行额外调用.调用内部提交函数.这会触发实际表单提交到表单的目标,并且生活会按预期进行.
| 归档时间: |
|
| 查看次数: |
21171 次 |
| 最近记录: |