如何在JQuery中从选择的选择中设置选择列表值

时间:2014-02-13 11:17:28

标签: jquery

对于表单中的每个选择列表,我想将所选选项设置为record[]中与select的id匹配的值。即字段名称,这是我用select。标记的选项。

此代码不起作用,它设置了其他(我的选择列表不会从record[]切换到我的值,虽然record[this.id]是我期待的,当然当我反转时下面要建立一个要发布的记录,我得到的只是我必须从下拉开始的那个,而不是我从下拉列表中选择的新值

我以为我可以使用.val()来设置选择列表值,而不是通过所有选项进行搅拌。

$('#dialog-edit-'+tableName+'-form select').each(function() {
    $('#'+this.id).val(record[this.id]);                
});

1 个答案:

答案 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);                
     });
});