需要使用javascript将选定的文本设置为粗体/斜体/下划线,并使用c#保存和检​​索相同的文本

Dot*_*ude 5 javascript c# bold

我需要使用javascript制作文本框粗体/斜体/下划线的选定文本.为此,我使用以下代码.

<img src="~/images/Bold"  alt="Bold" onclick="changeFont('TextBox1','b');"  />
<img src="~/images/Italic" alt="Italic" onclick="changeFont('TextBox1','i');"  />
<img src="~/images/Underline" alt="Underline" onclick="changeFont('TextBox1','u');"  />
Run Code Online (Sandbox Code Playgroud)

<script type="text/javascript" language="javascript">
    function changeFont(txt, change) {
        if (change == 'b') {
            if (document.getElementById(txt).style.fontWeight == 'bold')
                document.getElementById(txt).style.fontWeight = 'normal';
            else
                document.getElementById(txt).style.fontWeight = 'bold';
        }
        else if (change == 'i') {
            if (document.getElementById(txt).style.fontStyle == 'italic')
                document.getElementById(txt).style.fontStyle = 'normal';
            else
                document.getElementById(txt).style.fontStyle = 'italic';
        }
        else {
            if (document.getElementById(txt).style.textDecoration == 'underline')
                document.getElementById(txt).style.textDecoration = 'none';
            else
                document.getElementById(txt).style.textDecoration = 'underline';
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

但是这里的问题是,当我点击粗体图像时,它会将整个文本变为粗体而不是所选文本.它也不适用于其他两个图像.

保存文本框的文本时,即使尝试使用,我也无法获取包含html标签的文本

document.getElementById('TextBox1').innerHTML;
Run Code Online (Sandbox Code Playgroud)

我只能获得文本框的值.

有没有办法使用javascript或C#保存和检​​索相同的内容

在此先感谢SC

Joa*_*kim 2

这是一个回答有关获取突出显示文本的问题的问题 如何获取文本区域中的选定文本?

关于将所选文本设为粗体,您需要使用 html 标签或 bbcode 之类的内容,并在将其打印到页面上时将其解析为 html。

编辑:这是一个页面,显示了正在运行的 jquery 插件“fieldselection”。

编辑2:这是我如何做到这一点的示例:jsfiddle link

HTML:

<input id="bold" type="button" value="B" />
<br />
<textarea id="editor"></textarea>

<div id="resultAsHtml"></div>
<br />
<div id="resultAsText"></div>
Run Code Online (Sandbox Code Playgroud)

JavaScript(jquery)代码:

$(document).ready(function() {

    $("#editor").keyup(Update);

    function Update(){
        var text = $(this).val();
        var result = ParseToHtml(text);
        $("#resultAsHtml").html(result);
        $("#resultAsText").text(result);
    }

    $("#bold").click(function(){
        var range = $("#editor").getSelection();
        var textToReplaceWith = "[b]"+ range.text + "[/b]";
        $("#editor").replaceSelection(textToReplaceWith , true);

        var text = $("#editor").val();
        var result = ParseToHtml(text);
        $("#resultAsHtml").html(result);
        $("#resultAsText").text(result);
    });

    function ParseToHtml(text) {
        text = text.replace("[b]", "<b>");
        text = text.replace("[/b]", "</b>");
        text = text.replace("  ","&nbsp;");
        text = text.replace("\n","</br>");
        return text;
    }

    $("#bold").replaceSelection("[b]" + $("#editor").getSelection() + "[/b]", true);
});
Run Code Online (Sandbox Code Playgroud)