我在jquery中有以下代码,它应该在提交表单时更新隐藏字段,并使用新值处理表单。
$("#" + id).ajaxForm({
beforeSubmit: function() {
$("#" + id + " input[type=submit]").attr('disabled', true);
$("#" + id + " img.loader").show();
$.get('/getProd.php?refNumber='+$("#" + id + " input[name='refNumber']").val(), function (data) {
$("#" + id + " input[name='productID']").val(data);
});
alert("done pre");
},
success: function(resp) {
$("#" + id + " input[type=submit]").attr('disabled', false);
$("#" + id + " img.loader").hide();
resp = eval('(' + resp + ')');
ccm_parseJSON(resp, function() {
alert('done');
});
}
});
我的问题是正在使用的提交值是旧值。如何成功使用我用行
插入的新值$("#" + id + " input[name='productID']").val(data);
感谢。
答案 0 :(得分:0)
我发现问题是ajax正在使用async(应该如此)。
它基本上是在函数完成后完成对服务器的查询。
所以,我在我的ajax调用之前设置了
$.ajaxSetup({
async: false
});
在我的ajax电话之后
$.ajaxSetup({
async: true
});
它运作得很好。
答案 1 :(得分:0)
(以下评论)
这就是我的意思:你为什么不
refNumber
,getProd.php
(或其中编码的任何函数)以获取正确的productID
,productID
?它可以节省一个额外的背部和来自客户。