我有一个用户数据输入页面,其中包含动态、相关选择的行部分。在我尝试根据我刚刚包含在页面中的令人愉快的 select2 为用户自动选择选项之前,我不知道有什么问题。依赖选择的正确选项显示在页面上,但是当我尝试在 JQuery 中使用它们时,只有旧选项存在。神秘。我使用的是 Foundation 4,所以它增加了一些复杂性。这是一个很好用的小提琴,但我的页面仍然损坏:http: //jsfiddle.net/jenborn/24Kpv/2/
当页面加载时,以下是相关的选择:
<div class="small-3 columns">
<select id="fer1_1" class="medium">
<? echo $fer1_opt ?>
</select>
</div>
<div class="small-3 columns">
<select id="fer2_1" name="fer2_1" class="medium">
<option>None selected</option>
</select>
</div>
这是更改 fer1_1 时调用的函数:
function populateDep(){
id_in_str = $(this).attr('id');
var ctrl = id_in_str.slice(0,3); // the second param is POSITION not LENGTH!
var this_select = parseInt(id_in_str.slice(3,4), 10); // the second param is POSITION not LENGTH!
var row = id_in_str.slice(5);
$.getJSON("/cat_dropdowns.php",{parent_id: $(this).val(), required: '1', ajax: 'true'}, function(j){
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].value + '">' + j[i].text + '</option>';
}
var next_select = ++this_select;
$("select#" + ctrl + next_select + "_" + row).html(options);
Foundation.libs.forms.refresh_custom_select($('#' + ctrl + next_select + "_" + row), true);
Foundation.libs.forms.assemble();
});
}
此代码在尝试设置 fer2_1 的值之前显示它看到了旧选项:
$("#" + prefix + "2_" + num + " > option").each(function() {
console.log(this.text + ' ' + this.value);
});
我在萤火虫中看到了这个:没有选择
当我尝试自动选择 fer2_1 的值时,我正在使用这一行(我成功地将其用于 fer1_1):
$("select#" + prefix + "2_" + num).val(smart_cat_data['cat_lvl3_id']);