单击div类时将文本插入文本字段

时间:2013-09-26 13:44:39

标签: javascript php html textfield

我正在创建此提交系统。我想创建它,以便在单击div时插入一些文本(如[b] [/b])。这是我们正在使用的样本:

<div class="insertBBC" title="Bold Text" onClick="moveNumbers([b][/b])" id="bold">
                        <p>B</p>    
                    </div>  
                    <div class="insertBBC" title="Italic Text">
                        <p>I</p>
                    </div>
                    <div class="insertBBC" title="Bullet Points">
                        <p>BP</p>

等...
我也想要它,所以当文本字段中已有内容时,它不会从那里删除任何内容,它也应该添加光标所在的[b][/b]标记。选择文本后,它会在选项前面放置[b]标签,在后面放置[/ b]标签。有点像BBC作品。我不知道我怎么能实现这一点,我已经研究了很长一段时间,我看到人们告诉它只有JQuery可能,我不知道 Jquery JS 但是,是的..我会避免它如果可能的话。

此外,这些是文本框。其中有两个,我想插入当前活动的那个。

<br><textarea name="newPost" placeholder="Post Preview(Will Be Displayed on the Index Page)" cols="100"  rows="10"/></textarea><br>
<br><textarea name="newPostPreview" placeholder="Post Text" cols="100"  rows="10"/></textarea>

任何线索?谢谢:))

1 个答案:

答案 0 :(得分:1)

不幸的是,您唯一的选择是使用jQuery或Javascript(或其他一些浏览器端库)。 PHP只处理服务器端代码,可以吐出你想要使用的html字段,但是在页面加载到浏览器后它不能与元素交互。

我可以 向你解释如何使用jQuery,但只是现在开始学习它是值得的。用它做简单的事很容易,所以不要被吓倒。

以下是我建议开始使用的内容: 使用此标记加载最新的jQuery库:

<script src="http://code.jquery.com/jquery-latest.js"></script>

然后,您可以定位相应的按钮并在点击它们时执行某些操作:

$("#boldButtonID").click(function(){
    //get the index of the cursor
    //select the word that the cursor is on by stopping at the space (" ") character in either direction, then insert [b] and [/b] in the appropriate locations.
}

您还可以使用此函数获取所选文本,我在此处获取:Get the Highlighted/Selected text

function getSelectionText() {
var text = "";
if (window.getSelection) {
    text = window.getSelection().toString();
} else if (document.selection && document.selection.type != "Control") {
    text = document.selection.createRange().text;
}
return text;
}

然后你可以使用函数.before()。html(“[b]”)和.after()。html(“[/ b]”)将你的标签放在你需要的地方。

我希望这有助于阐明你需要做什么。

干杯!