ajax请求后隐藏字段的值

时间:2012-07-22 10:26:51

标签: jquery ajax

我正在使用ajax函数,其中我传递一个隐藏的字段值,并根据该值传递给下一个文件,并且查询运行重新调整值(html),我稍后更新到该隐藏字段但是问题是,当我使用隐藏字段的更新值来传递一个变量时,它会更新新值,而是采用隐藏字段的旧值?任何人都可以帮助我

var pre_prod_id = $('.prod_id').val(); //old hidden field value
$.ajax({
    type: "GET",
    url: "eg",
    cache: false,
    success: function(html) {
        $('.prod_id').val(html); // got updated value via ajax and updated
    }
});
var prod_id = $('.prod_id').val(); // getting new value of hidden field
alert(prod_id); // alert gives still the old value ???
$target = 'egab=' + abd + '&& abc=' + abc + '&& action=' + action + '&& prod_id=' + prod_id;

我已经在步骤中提到了我想要做什么?希望有人找到解决方案。

1 个答案:

答案 0 :(得分:2)

对$ .ajax的调用是异步的,因此在执行第二个var prod_id = $('.prod_id').val();语句之前,您的代码不会等到从服务器收到响应。

确保在收到Ajax调用响应之后运行一段代码的唯一方法是将它放在“success”函数中。

另一种方法(但不是我建议的方法)是通过设置async : false使ajax调用同步。这是不好的做法,因为它可以使浏览器无响应 - 我建议重构代码,如上所述。