我有一个Jquery脚本,我正在进行一个ajax调用,并且我得到的值是我用它来将它添加到select选项,下拉菜单中,
我的问题是它没有显示为已选中,
JS如下
(function($, window) {
$.fn.replaceOptions = function(options) {
var self, $option;
this.empty();
self = this;
$.each(options, function(index, option){
$option = $("<option></option>")
.attr("value", option.value)
.text(option.text);
self.append($option);
});
this.prop('disabled', false);
};
})(jQuery, window);
$(document).on('click', ".add1", function () {
var val1 = $(".selectLevel", $(this).parents("tr")).eq(0).val(),
val2 = $(".selectLevel", $(this).parents("tr")).eq(1).val(),
url = "http://www.xxxyz.com/xxx/xxx/web/ajax.php",
val3 = $(this).closest('tr').find('input').val(),
closeSelect = $(this).closest('td').find('select');
if (val3 == '' || val3 == null) alert('You need to add value in the input box');
else {
var posting = $.post(url, {
im_core: 'selectAjaxUpdate',
geo_level1: val1,
geo_level2: val2,
geo_level3: val3,
pais: <? php echo $_POST['pais'] ?>
}).done(function (data) {
var obj = $.parseJSON(data);
$.each(obj, function (key, value) {
myArray.push({
text: obj[key].value,
value: obj[key].id
});
});
//$(closeSelect).html('myArray');
$(closeSelect).replaceOptions(myArray);
});
}
});
任何人都可以帮助我吗?有了这个
先谢谢
答案 0 :(得分:0)
中的问题
$(closeSelect).replaceOptions(myArray);
尝试更改
closeSelect.replaceOptions(myArray);
如果您使用here中的replaceoptions方法, 它不支持设置选定值,因为它只接受对象数组并将它们添加到选择
答案 1 :(得分:0)
您正在更改下拉列表的来源,但是一旦您获得更改,您就不会设置新值。您只需要设置选定的值。
$(document).on('click', ".add1", function () {
var val1 = $(".selectLevel", $(this).parents("tr")).eq(0).val(),
val2 = $(".selectLevel", $(this).parents("tr")).eq(1).val(),
url = "http://www.xxxyz.com/xxx/xxx/web/ajax.php",
val3 = $(this).closest('tr').find('input').val(),
closeSelect = $(this).closest('td').find('select');
if (val3 == '' || val3 == null) alert('You need to add value in the input box');
else {
var posting = $.post(url, {
im_core: 'selectAjaxUpdate',
geo_level1: val1,
geo_level2: val2,
geo_level3: val3,
pais: <? php echo $_POST['pais'] ?>
}).done(function (data) {
var obj = $.parseJSON(data);
$.each(obj, function (key, value) {
myArray.push({
text: obj[key].value,
value: obj[key].id
});
});
//$(closeSelect).html('myArray');
$(closeSelect).replaceOptions(myArray);
//Set selectedValue over here
$(closeSelect).val(yourSelectedValue);
});
}
});