IE下textarea去除回车换行符

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

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

效果演示


程序代码

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

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

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

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

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

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

posted on 2014-11-08 20:31  复活的老羊  阅读(1267)  评论(0编辑  收藏  举报

导航