如何在文本字段中制作按钮插入标记?

时间:2013-06-26 19:35:35

标签: javascript textarea add

我正在尝试制作多个按钮,点按这些按钮时,会将<p></p><b></b>等标记添加到文本字段中。我已经想出如何让它像这样工作:

<script>
function addtxt(input) {
    var obj=document.getElementById(input)
    obj.value+="<p></p>"
}
</script>

<input type="button" value="<p></p>" onclick="addtxt('body')">

但是我不想为每个不同的按钮设置多个脚本,而是想知道JS是否有一种方法可以将元素value用作obj.value。有可能吗?




编辑:我在网上发现这个其他代码甚至更好,我如何使这个新代码使用元素value,有什么办法吗?

function boldText(textAreaId, link) 
{
    var browser=navigator.appName
    var b_version=navigator.appVersion

    if (browser=="Microsoft Internet Explorer" && b_version>='4')
    {
        var str = document.selection.createRange().text;
        document.getElementById(textAreaId).focus();
        var sel = document.selection.createRange();
        sel.text = "<b>" + str + "</b>";
        return;
    }

    field = document.getElementById(textAreaId);
    startPos = field.selectionStart;
    endPos = field.selectionEnd;
    before = field.value.substr(0, startPos);
    selected = field.value.substr(field.selectionStart, (field.selectionEnd - field.selectionStart));
    after = field.value.substr(field.selectionEnd, (field.value.length - field.selectionEnd));
    field.value = before + "<b>" + selected + "</b>" + after;
}

2 个答案:

答案 0 :(得分:1)

您可以将this传递给onclick处理程序,然后在您的函数中访问它的值:

<script>
function addtxt(input, button) {
    var obj=document.getElementById(input);
    obj.value+=button.value;
}
</script>

<input type="button" value="<p></p>" onclick="addtxt('body', this)">
<input type="button" value="<b></b>" onclick="addtxt('body', this)">

答案 1 :(得分:0)

以下是一个特定div的示例,它接收javascript生成的代码。 我不建议将它添加到带div主体的id,因为该单词是为html结构元素保留的,所以我将目标div称为“addHere”。

<强>的Javascript

function addtxt(e) {
    console.log(e)
   var dest = document.getElementById("addHere");
   dest.innerHTML = e.value;

}

<强> HTML

<input type="button" value="<p>Text</p>" onclick="addtxt(this)">
<div id="addHere"></div>

fiddle here