我有一段jquery ajax代码,如果表单发生更改,它会提交表单。我唯一的问题是,我的表单中也有一个国家/地区jquery选项,每次我单击自动补全建议时,带有旧/上一个值的表单都会被提交。例如:我搜索“奥地利”并单击它,结果提交了一个空值。然后我将其更改为“波兰”,并将奥地利的"at“更改为提交。我的想法是延迟ajax调用:$.ajax,但是我不知道该怎么做。
<script type="text/javascript">
$(document).ready(
function submitFormAjax()
{
$('#myForm').change(function() {
$.ajax({
type:"POST",
url:"ajax.php",
data:$(this).serialize(),
success:function(data)
{
$("#ajaxList").html(data);
}
})
return false;
});
});
</script>发布于 2012-03-05 01:55:00
不确定它是否会工作,如果没有看到更多的代码就很难判断,但这里是如何延迟$.ajax的!
$('#myForm').on('change', function() {
setTimeout(submitFormAjax, 200);
return false;
});
function submitFormAjax() {
$.ajax({
type:"POST",
url:"ajax.php",
data:$('#myForm').serialize(),
success:function(data) {
$("#ajaxList").html(data);
}
});
}发布于 2012-03-05 01:52:19
setTimeout将在这里完成这项工作:
$('#myForm').change(function() {
var self = $(this);
setTimeout(function () {
$.ajax({
type:"POST",
url:"ajax.php",
data:self.serialize(),
success:function(data)
{
$("#ajaxList").html(data);
}
})
}, 1000);
return false;
});发布于 2012-03-05 02:01:18
$('#myForm').change(function() {
var val = $(this).serialize();
setTimeout(delayAjax(val),1000);
});定义延迟ajax函数
function delayAjax(formVal){
$.ajax({
type:"POST",
url:"ajax.php",
data:formVal,
success:function(data)
{
$("#ajaxList").html(data);
}
});
};https://stackoverflow.com/questions/9557287
复制相似问题