texterea在各大浏览器中用jquery取值和赋值问题总结


测试浏览器:IETester、IE、Firefox、Chrome、Opera和Safari,五大主流浏览器。

 

场景一:从textarea中取值,不经过数据库,直接存到另外一个textarea中。

  (对于从textarea中取值,放在div中不在讨论范围之内)

 

解决办法:

       <textarea id="mytextarea1"></textarea>

<textarea id="mytextarea2"></textarea>

 

使用: $("#mytextarea2").val($("#mytextarea1").val());

 

备注:使用val()取值,val()赋值在IE、Firefox、Chrome、Opera和Safari浏览器都没问题。

 

常见问题:
texterea在各大浏览器中用jquery取值和赋值问题总结
 

场景二:从textarea中取值,存到数据库中,然后从数据库中取出放在另一个textarea中。

 

根据场景一知,在textarea中使用val()获取和赋值。

 

问题又来了:

当在一个textarea标签中键入一个回车时,实际上会插入2个符号:”\n\r”。

( \n 回车符; \r 换行符)。
 如果用text()获取textarea中的值,那么存入数据库的数据就只会有”\r”;

如果用var()获取textarea中的值,那么存入数据库的数据就只会有”\n”。

 

<textarea id="mytextarea1"></textarea>  <!—输入-->

<textarea id="mytextarea2"></textarea>  <!—结果显示-->

 

使用: var str = $("#mytextarea1").val();

 

 

一种解决方案:

1. 思路:把textarea中回车符”\r\n”,在存入数据库之前替换成”<br/>”,在从数据库

中取出显示再替换成” \r\n”。

2. 实现:

存入数据库前:

    var reg1=new RegExp("\r\n","g");

    str= str.replace(reg1,"\r\n");

取出显示时:

    var reg2=new RegExp("<br>","g");
         str= str.replace(reg,"\r\n");

   $("#mytextarea2").val(str);

 

相关推荐