0

私はシルバーライトで作業しています。データグリッド内にテキストボックスがあり、ページにボタンがあり、その機能は選択したテキストを括弧で囲むことです。例えば。テキストボックスのテキストを「Hello World」にします。データグリッドが編集モードになると、このテキストボックスからテキストを選択したいと思います。それを「世界」にしましょう。今、私は「世界」を選択しました。ボタンをクリックすると、テキストボックスの出力は「Hello (World)」になります。しかし問題は、テキストを選択してボタンをクリックすると、テキストボックスがフォーカスを失い、テキストが変更されないことです。テキストボックスにフォーカスすると、ボタンがクリックされません。

誰でも解決策を提案できます。

4

1 に答える 1

0

クライアントイベントを使用できますか?JQueryのCaretプラグインを見ることができます:http: //www.examplet.buss.hk/jquery/caret.php

// Get start position in textbox box with id="textbox1"
$("#textbox1").caret().start

// Get end position in textbox
$("#textbox1").caret().end

// Get selected text in textbox
$("#textbox1").caret().text

簡単なJavascriptソリューションもあります。

<script language=javascript>
function getSelText()
{
var txt = '';
    if (window.getSelection)
    {
        txt = window.getSelection();
    }
    else if (document.getSelection)
    {
        txt = document.getSelection();
    }
    else if (document.selection)
    {
        txt = document.selection.createRange().text;
    }
    else return;
document.aform.selectedtext.value =  txt;
}
</script>
<form>
    <input type="button" value="Get selection" onmousedown="getSelText()"> 
    <form name=aform >
    <textarea name="selectedtext" rows="5" cols="20"></textarea>
</form>

ソース: http: //www.codetoad.com/javascript_get_selected_text.asp

于 2013-02-26T09:15:30.183 に答える