jquery e.preventdefault在$.post内不工作
嗨,我正在检查数据库中是否已经存在表单中的标题 我的代码执行$.post并返回数据,但它不会以e.preventDefault()停止;或返回时为假。e、 预防默认值();标题为空时工作jquery e.preventdefault在$.post内不工作,jquery,ajax,validation,Jquery,Ajax,Validation,嗨,我正在检查数据库中是否已经存在表单中的标题 我的代码执行$.post并返回数据,但它不会以e.preventDefault()停止;或返回时为假。e、 预防默认值();标题为空时工作 $(document).ready(function() { $('input[id$=btnSubmit]').click(function(e) { var title = $("#title").val(); if (
$(document).ready(function() {
$('input[id$=btnSubmit]').click(function(e) {
var title = $("#title").val();
if (!title) {
alert('Please Add a title');
return false ;
e.preventDefault();
} else {
$.post("http://xendesktop.nl/uploader/checktitle.php",{ title:$(this).val() } ,function(data) {
if(data=='exists') {
alert('This title already exists');
e.preventDefault();
}
});
}
var description = $("#description").val();
if (!description) {
alert('Please Add a description');
return false ;
e.preventDefault();
}
返回false
相当于防止冒泡和防止默认值
两者都不应进入AJAX回调-该函数在单击回调之外被调用。
返回false
相当于防止冒泡和防止默认值
两者都不应进入AJAX回调-该函数在click回调之外被调用。post请求是异步发生的,因此在服务器发回响应之前(不会及时发生)按钮的默认操作没有被阻止,或者更确切地说,执行流经过该点,处理程序的其余部分被执行,导致表单提交。post请求是异步发生的,因此直到服务器返回其响应(这不会及时发生)按钮的默认操作才被阻止,执行流经过该点,处理程序的其余部分被执行,导致表单提交。那么如何防止这种情况发生呢?我会在处理程序开始时防止默认值,并手动触发提交,例如,
$(this).closest(“form”).submit()
,只有在我们准备就绪时才触发提交。这需要一点重构,但最终会得到一个更短更简洁的解决方案。那么如何防止这种情况呢?我会在处理程序的开始部分使用preventDefault,并手动触发提交,例如,$(this).closest(“form”).submit()
,只有在我们准备就绪时才使用。这需要进行一些重构,但最终会得到一个更简短的解决方案。