Jquery ajaxForm在提交表单后更改值
我在jquery中有以下代码,它应该在提交表单时更新一个隐藏字段,并使用新值处理表单Jquery ajaxForm在提交表单后更改值,jquery,ajaxform,Jquery,Ajaxform,我在jquery中有以下代码,它应该在提交表单时更新一个隐藏字段,并使用新值处理表单 $("#" + id).ajaxForm({ beforeSubmit: function() { $("#" + id + " input[type=submit]").attr('disabled', true); $("#" + id + " img.loader").show(); $.get('/getProd.php?refNumber='+
$("#" + 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);
?
谢谢。我发现问题在于ajax使用的是异步(这是应该的) 它基本上是在函数完成后完成对服务器的查询 因此,我在ajax调用之前设置
$.ajaxSetup({
async: false
});
$.ajaxSetup({
async: true
});
在我打了ajax电话之后
$.ajaxSetup({
async: false
});
$.ajaxSetup({
async: true
});
而且效果很好。(以下评论)
这就是我的意思:你为什么不呢
refNumber
,将表单内容发送到服务器getProd.php
(或其中编码的任何函数)以获得正确的productID
产品ID
这将为客户节省一个额外的往返时间。问题:从我所读到的,您不需要
productID
来识别产品,您只需要refNumber
。为什么不改变服务器端的处理方式以考虑到refNumber
,而不是productID
?我需要productID,getProd.php页面会将refNumber转换为productID。它需要在服务器端运行我管理,看看下面我的答案,这是行不通的,因为我无法修改使用productId的脚本以使用refNumber。我基本上把它送到两个不同的地方。我解决了我的问题,看看上面。谢谢你有额外的限制。好啊