我有这个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>
答案 0 :(得分:1)
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;
});
答案 1 :(得分:0)
不确定它是否会起作用,很难在没有看到更多代码的情况下判断,但这里是如何延迟$ .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);
}
});
}
答案 2 :(得分:0)
$('#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);
}
});
};