2

私はasp.netで開発しており、画面にテキストボックスがあり、テキストを追加する必要がある場所にカーソルがあります。

ボタンがページに存在するか、少なくとも存在し、ボタンを押すと、ボタンが押された時点でカーソルがあった場所にテキストボックスにテキストが挿入されます。テキストは失われるべきではありません。カーソル。

これは、alert(''); 以外の JavaScript を知らないことを念頭に置いて、JavaScript で可能ですか? ボタンをクリックすると、カーソルの位置が失われる可能性があることは理解しています。

実際には、それぞれが独自の異なる文字列を挿入する 7 つの小さなボタンがあります。

ありがとう

4

2 に答える 2

3

はい、可能です。これは、あなたが探していることを正確に行うために使用している関数です

// myfield: the DOM element that you need to interact with
// myValue: the text to be instered
function insertAtCursor(myField, myValue) {
    //IE support
    if (document.selection) {
        myField.focus();
        sel = document.selection.createRange();
        sel.text = myValue;
    }
    //MOZILLA/NETSCAPE support
    else if (myField.selectionStart || myField.selectionStart == '0') {
        var startPos = myField.selectionStart;
        var endPos = myField.selectionEnd;
        myField.value = myField.value.substring(0, startPos)
        + myValue
        + myField.value.substring(endPos, myField.value.length);
    } else {
        myField.value += myValue;
    }
}

あなたがする必要があるのは、テキストボックス/テキストエリアを最初のパラメーターとして渡し、テキストを2番目のパラメーターとして渡すことだけです.BOOM、それは機能しています!!

更新:実例: http://jsbin.com/owesik/1/edit

于 2012-11-08T10:46:58.993 に答える
0

いくつかの指針については、この回答を参照してください。

短いバージョンは、「はい、少なくとも最近のブラウザーでは可能です」です。ただし、これを機能させるには、JavaScript を独習する必要があります。私は個人的にこのオンライン ブックをお勧めします(著者とは一切関係ありません)。

于 2012-11-08T10:45:24.440 に答える