我有这样的代码:
var regions = [{'label': 'array', 'value': '1'}]; //default values
$("#auto1").select({
regions = jQuery.parseJSON( //updating process
$.ajax({
type: 'POST',
url: '/ajax/place/',
data: { country: value }
})
);
return false;
});
$("#auto2").some_func({
initialValues: regions, //here must be updated values, but it's not
});
我认为从上面的代码可以理解:当页面加载时,元素#auto2有默认值,但是当我从#auto1中选择smth时它必须更新,但它不是。
如何更新与数据值对应的值。
谢谢!
答案 0 :(得分:3)
$("#auto1").select({
regions = jQuery.parseJSON( //updating process
$.ajax({
type: 'POST',
url: '/ajax/place/',
data: { country: value },
success: function( data ) {
//trying yo update values, after successfull response
//some cool code is here or calling a function to update values
},
error: function( data ) {
//error to update
}
}
})
);
return false;
});
答案 1 :(得分:0)
您的问题在于如何尝试恢复您的ajax数据。 ajax调用是asyncrynous,这意味着他们不会在返回之前保留代码。因此,jQuery.ajax允许您根据ajax响应是否返回成功或失败代码来触发成功和失败回调。您需要在成功回调中解析数据并将其存储在some_func
方法可以看到它的范围内的变量中
var regions = [{'label': 'array', 'value': '1'}]; //default values
$("#auto1").select({
$.ajax({
type: 'POST',
url: '/ajax/place/',
data: { country: value },
success: function(data){
regions = jQuery.parseJSON(data);
}
});
return false;
});
$("#auto2").some_func({
initialValues: regions
});