2

私は自分のサイトでメッセージのフォーマットを許可することに取り組んでいます。基本的に、太字、斜体、下線などのボタンは、テキストボックスのテキストに[b] [/ b]、[i] [/ i]、[u][/u]などのタグを追加します。

テキストボックス内のどのテキストが強調表示されているかを検出する方法がわからないため、強調表示されたテキストの書式設定についても調べていません...

現在、追加部分に取り組んでいます...

<tr>
    <td></td>
    <td>
        <div class="button style" id="btnBold"><b>B</b></div>
    </td>
</tr>
<tr>
    <td></td>
    <td><asp:TextBox runat="server" ID="txtMailMessage" TextMode="MultiLine" Width="430" Height="100"></asp:TextBox></td>
</tr>

<script type="text/javascript">
    //
    // TEXT STYLE BUTTONS
    //
    $("#btnBold").click(function () {
        var textbox = $("#<%= txtMailMessage.ClientID %>");
        textbox.text(textbox.text + "[b][/b]");
    });
</script>

これは理論的には機能するように思えます...
このコードで得たのは、テキストボックス内の現在のテキストを保持してから、タグを追加することです。

テキストボックスが空のときに試してみると、次のようになります。

function (a) {
    return p.access(this, function(a) {
        return a===b ? p.text(this) : this.empty().append((this[0] && this[0].ownerDocument || e).createTextNode(a))
    }, null, a, arguments.length)
}

テキストボックスにすでにテキストがある場合、クリックしても何も起こりません...

誰かが(主に)追加を手伝ってくれて、コントロールで選択されたテキストのフォーマットについて少しガイダンスを提供できますか?

ありがとう!

4

1 に答える 1

3

行う代わりに:

textbox.val(textbox.val() + "[b][/b]");

テキストの周りにタグを付けようとしましたか?テキストボックス内のテキストをフォーマットする場合は、次のようにする必要があります。

textbox.val("[b]" + textbox.val() + "[/b]");

選択したテキストの周りにタグを配置したい場合、または何も選択されていない場合は追加したい場合は、javascript関数を作成してそれを行うことができます。コードは次のとおりです。

function addTagsToSelectedText(e) {
    var yourInputText = $("#yourtext");
    //Here you get the start of the selection
    var ss = yourInputText[0].selectionStart;
    //Here you get the end of the selection
    var se = yourInputText[0].selectionEnd;

    var text = yourInputText.val();
    //if there are no selections just append.
    if (ss == se)
        yourInputText.val(text + "[b][/b]");
    else
        yourInputText.val(text.substr(0, ss) + "[b]" + text.substr(ss, se) + "[/b]" + text.substring(se, text.length));
}

この関数は、mousedownイベントのハンドラーとして使用する必要があります。これは、ボタンをクリックすると、他の要素の選択が失われるためです。したがって、選択がアクティブな状態で、マウスダウンで使用します。

<button onmousedown="addTagsToSelectedText(event)">click</button>

お役に立てば幸いです。

于 2012-10-30T10:54:17.527 に答える