0

在下面的 html 代码中..我有一个值选择的下拉框..现在我想填充它旁边的输入框..

我使用下面的代码来做到这一点..但是如何填充相应的文本框..

var ty =$(".edata");
$(ty).children().find(".kt").html('').append('//Appending values to drop down');
for(var item in key_val_pair)
{
    $(ty).children().find(".kt").removeAttr('selected')
    $(ty).children().find(".kt option:eq("+item+")").prop('selected',true);                 
    $(ty).children().find(".kt option:eq("+item+")").closest('.e_val').val(key_val_pair[item])
}

编辑:

 Lets say key_val_pair="{\"1\":\"123\",\"4\":\"456\"}"

HTML

<div class="edata">
    <span class="b1">
        <select class="kt">
            <option value="1">k1</option>
            <option value="2" >k2</option>
        </select>
        <input type="text" placeholder="val" class="e_val"/>
    </span>
    <span class="b1">
        <select class="kt">
            <option value="3">k3</option>
            <option value="4" >k4</option>
        </select>
        <input type="text" placeholder="val" class="e_val"/>
    </span>
</div>
4

3 回答 3

1

这是考虑到您希望使用从下拉列表中选择的选项填充最近的输入框:

<script>
     key_val_pair = { 
            "1" : "123",
            "2" : "321",
            "3" : "999",
            "4" : "456" };

     $('.kt').on('change', function() {
         $(this).siblings('.e_val')
                .val( key_val_pair[ $(this).find('option:selected').val() ] );
     });
</script>

小提琴:http: //jsfiddle.net/3Dtzb/2/

于 2013-09-26T12:44:16.287 回答
0

您的问题出在这一行:

$(ty).children().find(".kt option:eq("+item+")").closest('.e_val').val(key_val_pair[item])

最接近()只找到祖先,所以你告诉它找到一个带有选项类'e_val'的祖先。你真的想要

$(ty).children().find(".kt option:eq("+item+")").parent().siblings('.e_val').val(key_val_pair[item])

上到(父),然后到与类“e_val”相关联的兄弟。

于 2013-09-26T13:32:35.627 回答
0
$(ty).children().find(".kt").next('input').val('you value');
于 2013-09-26T12:57:58.547 回答