首页 > 代码库 > IE下textarea去除回车换行符

IE下textarea去除回车换行符

在textarea中回车,会产生转义字符\r\n,有些时候我们不需要这两个转移字符,也就是清空textarea。下面的方法并不是清空,但是能够起到差不多的效果。

如果在textarea中按回车,内容提交之后,在textarea中会留下\r\n这两个转义字符,光标会在第二行。下面的程序通过alexa将焦点转出去,再通过onfocus="this.value=http://www.mamicode.com/‘‘"这段代码,将光标拉回到textarea最开始处,这样就起到简易的清空效果广德县能源局

效果演示


程序代码

01<textarea id="myTextArea" name="pl" rows="5" style="width:500px;"onkeypress="send(event)" onfocus="this.value=http://www.mamicode.com/‘‘"></textarea><br />
02<input id="showBtn" name="button" type="button" onclick="send_bet();"value=http://www.mamicode.com/"提交" />
03<script>
04function send_bet()
05{
06    var myTextArea = document.getElementById("myTextArea");
07    myTextArea.value =http://www.mamicode.com/ ‘‘;
08    myTextArea.select();
09}
10function send(event) 
11
12    if(event.keyCode==13)  
13    {  
14        send_bet(); 
15        alert("提交成功");
16        myTextArea.value =http://www.mamicode.com/ ‘‘;
17        myTextArea.focus();
18    
19
20</script>

如果习惯了写XML,也许会写下了这样的HTML代码:

1<textarea name="test" cols="20" rows="4" />

结果是,textarea后面的HTML都当作内容出现在了文本域里面了。这是第一个搞笑的地方,不支持常见的标记结束方式;

接着,我给这个textarea加上了value="http://www.mamicode.com/test"的属性值,事实上在文本域里面什么都看不到,但是我使用如下的Javascript语句却能改变文本域里面显示的内容:document.forms[0].test.value="http://www.mamicode.com/test";这是第二个搞笑的地方了;

最后一个搞笑的地方是最夸张的了。通常在HTML中的空格都是会被忽略的,但是在textarea开始与结束的标签之间的空格都会照单全收进入到文本域中,作为textarea的默认输入了。由于我习惯了写HTML是喜欢将两个对应的标签写在两行的,结果就可想而知,不管怎么样,当我将焦点定位至TextArea文本域的时候,光标就是不在最左边显示,这还不太要紧,更要命的是,由于这些空格的存在,输入的内容还没有到文本域边沿的时候,就自动换行了,除非你将做为默认输入的空格全部删掉了。

IE下textarea去除回车换行符