对于表单中的每个选择列表,我想将所选选项设置为record[]
中与select的id匹配的值。即字段名称,这是我用select。标记的选项。
此代码不起作用,它设置了其他(我的选择列表不会从record[]
切换到我的值,虽然record[this.id]
是我期待的,当然当我反转时下面要建立一个要发布的记录,我得到的只是我必须从下拉开始的那个,而不是我从下拉列表中选择的新值。
我以为我可以使用.val()
来设置选择列表值,而不是通过所有选项进行搅拌。
$('#dialog-edit-'+tableName+'-form select').each(function() {
$('#'+this.id).val(record[this.id]);
});
答案 0 :(得分:1)
我猜你应该试试这个:http://jsfiddle.net/maximgladkov/Emnt6
<强> HTML 强>
<select id="test1">
<option value="test1-1">Test 1</option>
<option value="test1-2">Test 2</option>
<option value="test1-3">Test 3</option>
</select>
<select id="test2">
<option value="test2-1">Test 1</option>
<option value="test2-2">Test 2</option>
<option value="test2-3">Test 3</option>
</select>
<select id="test3">
<option value="test3-1">Test 1</option>
<option value="test3-2">Test 2</option>
<option value="test3-3">Test 3</option>
</select>
<强> JS 强>
$(document).ready(function() {
var record = { test1: 'test1-1', test2: 'test2-3', test3: 'test3-2' };
$('select').each(function() {
var id = $(this).attr('id');
$(this).find('option[selected]').removeAttr('selected');
$(this).find('option[value='+record[id]+']').prop('selected', true);
});
});