0

誰でもこれについて私を助けることができますか?

2 つのテキスト エリア コントロールと 1 つのリスト ボックス コントロールで設計された .aspx ページを取得しました。

<td>
    <p>Base Entity Attributes</p>
    <select name="drop1" id="SelectGroupApiS" size="4">
    </select>
</td>
<td>
    <p>REQUEST XML</p>
    <textarea id="txtAreaRequest" rows="" cols=""></textarea>
</td>
<td>
    <p>RESPONSE XML</p>
    <textarea id="txtAreaResponse" rows="" cols=""></textarea>
</td>

リストボックスの項目をクリックすると、jqueryを使用してlistitemの現在のテキストがTextAreaに表示されます。しかし、カーソル位置を含むテキストボックスにテキストを入れたいです。現在、私は単一のテキストボックスになるようにしました。カーソル位置を含む2つのテキストボックスのうちの1つにテキストを表示したいと思います。

それを実現するにはどうすればよいですか?

助けてください

4

3 に答える 3

0

私があなたの質問を正しく理解していれば、次のようなことができます:

$(document).ready(function(){$('#txtAreaRequest').focus()});

var dataTB = [];
$('textarea').blur(function() {
    dataTB[0] = this;
    dataTB[1] = getCaret(this);
});

$('#SelectGroupApiS').change(function() {
    var valTB =  $(dataTB[0]).val();    $(dataTB[0]).val(valTB.substring(0,dataTB[1])+$('option:selected',this).text()+valTB.substring(dataTB[1]));

});



function getCaret(node) {
    if (node.selectionStart) {
        return node.selectionStart;
    } else if (!document.selection) {
        return 0;
    }

    var c = "\001",
        sel = document.selection.createRange(),
        dul = sel.duplicate(),
        len = 0;

    dul.moveToElementText(node);
    sel.text = c;
    len = dul.text.indexOf(c);
    sel.moveStart('character', -1);
    sel.text = "";
    return len;
}

http://jsfiddle.net/mcDhE/を参照してください

于 2012-11-03T12:05:04.090 に答える