0

私はこのコードを持っています:

$('.update-title')
    .change(function () {
        $(this).prop('title', $('option:selected', this).prop('title'));
    });

そしてこのHTML:

<select id="modal_TempRowKey_14" class="update-grid update-title">
...
...
</select>

<input id="modal_Title_14" class="update-grid" type="text" value="xx">

.update-title が変更されたときに、タイトルの値が一致する番号で入力 ID に入れられるようにすることは可能ですか? したがって、この場合、#modal_TempRowKey_14タイトルは#modal_Title_14価値になります

重要

変更される要素が で始まる場合にのみ、これが発生するようにしmodal_TempRowKeyます。これを変更ブロックに入れることは可能ですか?

4

4 に答える 4

1

私の提案は、属性を解析しようとするのではなくid、jQuery のdata機能を利用することです。

selectメニューにdata-target属性が含まれるように HTML を編集します。

<select id="modal_TempRowKey_14" data-target="#modal_Title_14" class="update-grid update-title">
...
...
</select>

次に、次のようにイベント ハンドラーを作成します。

$('.update-title').on('change',function() {
    var $this = $(this);
    $($this.data('target')).val($this.val());
})

この属性を使用して、メニューの値data-targetを適用する要素を見つけます。select

ここにデモがあります:

--- jsFiddle デモ ---

于 2012-08-30T14:32:48.687 に答える
1

試す

$('.update-title').on("change", function() {
    var id = this.id.replace('modal_TempRowKey_', '');  
    $("#modal_Title_" + id).val( $(this).val() );
});
于 2012-08-30T14:32:35.630 に答える
1
$('.update-title').change(function () {
    var m = this.id.match(/^modal_TempRowKey_(\d+)$/);
    if (m) {
        $("#modal_Title_" + m[1]).val(this.id);
    }
});​

デモ

于 2012-08-30T14:33:57.283 に答える
1

他の人はよりエレガントなアプローチをとっていますが、これが私の試みです:

http://jsfiddle.net/8sLCL/1/

$('.update-title')
    .change(function () {
        var my_text = $(this).find(":selected").text();
        var my_id = $(this).attr("id");
        var my_num_pos = my_id.lastIndexOf("_");
        var my_num = my_id.substr(my_num_pos + 1 ,my_id.length - my_num_pos  );
        $( "#modal_Title_" + my_num ).val(my_text );
});​
于 2012-08-30T14:40:49.717 に答える