简明现代魔法 -> HTML超文本标记语言 -> IE下textarea清空回车换行

IE下textarea清空回车换行

2010-09-19

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

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

效果演示


程序代码

<textarea id="myTextArea" name="pl" rows="5" style="width:500px;" onkeypress="send(event)" onfocus="this.value=''"></textarea><br />
<input id="showBtn" name="button" type="button" onclick="send_bet();" value="提交" />

<script>
function send_bet()
{
	var myTextArea = document.getElementById("myTextArea");
	myTextArea.value = '';
	myTextArea.select();
}

function send(event)  
{  
    if(event.keyCode==13)   
    {	
        send_bet();  
		alert("提交成功");
		myTextArea.value = '';
		myTextArea.focus();
    }  
}  
</script>

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

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

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

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

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

随机文章推荐
网站分类


注:如需转载本文,请注明出处(原文链接),谢谢。更多精彩内容,请进入简明现代魔法首页。

进入新博客
喜欢本文,就分享它吧
给我留言
您的名字:
您的邮件:
您的网站:


 

copyright © 2009 简明现代魔法    学习、分享、进步

power by Gonn 感谢所有关心和支持本站的朋友们