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])

closest() は祖先のみを検索するため、オプションのクラス '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 に答える