格式化文本框中的文本

时间:2011-09-10 03:03:39

标签: javascript

我正在尝试将所选文本格式化为文本框内的粗体但不会发生。但是,它在span / div中是hapenning。我的代码

<html> 
<head> 
<title>Untitled Document</title> 
<script type="text/javascript"> 
function FormatSelectedWord(txtBox,style) 
{ 

var selectedText = document.selection 
? document.selection.createRange().text 
: txtBox.value.substring(txtBox.selectionStart,txtBox.selectionEnd); 

if(selectedText!='') 
{ 
var newText='<'+style+'>'+selectedText+'</'+style+'>'; 
txtBox.value=txtBox.value.replace(selectedText,newText) 
spOutput.innerHTML=txtBox.value; 
} 
} 
</script> 
</head> 
<body> 


<input type="text" name="txtBox"> </input> 
<input type="button" value="Bold" onclick="FormatSelectedWord(txtBox,'b')"> 
<span id="spOutput"></span> 
</body> 
</html> 

是否可以使用文本框。如果是这样的话?

由于

3 个答案:

答案 0 :(得分:3)

不,不可能在文本框中设置文本样式。如果您需要可编辑的格式化文本,则可以使div或span contentEditable = true。

答案 1 :(得分:0)

而不是重新发明轮子,你最好考虑实现TinyMCE或其他类似的事情,这很容易。这是非常常见的功能,它被称为“富文本编辑器”,如果你想去谷歌搜索:)

尝试自己添加这种功能是巨大的蠕虫病毒,你真的不想参与其中:)

答案 2 :(得分:0)

以下是我认为您想要的示例: http://jsfiddle.net/6gQJC/1/

以下是您的问题:http://jsfiddle.net/6gQJC/

txtBox is undefined

所以这个:

<input type="text" name="txtBox"> </input>

需要

<input type="text" id="txtBox" name="txtBox"> </input> 

然后

function FormatSelectedWord(txtBox,style) 
{ 
     var textbox = document.getElementById('textBox');