博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)JQuery TextArea的取值与赋值问题
阅读量:6192 次
发布时间:2019-06-21

本文共 1296 字,大约阅读时间需要 4 分钟。

本文转载自:http://www.cnblogs.com/long_/archive/2010/07/28/1787124.html

首先,说明这不是一个简单的问题!

     先说取值:

$("#textarea").text();读取,最近测试时候发现在firefox中读取不出textArea的值,IE正常

于是修改为:

$("#textarea").val();    问题解决,不过搜索时,发现有人提另一个问题:    当在一个textarea标签中键入一个回车时,实际上会插入2个符号:\n\r \n 回车符 \r 换行符  如果用text()获取textarea中的值,那么存入数据库的数据就只会有\r 如果用var()获取textarea中的值, 那么存入数据库的数据就只会有\n 这样的区别就是,在IE下, 你如果是读取用text()存入的数据在展示在textarea中,那么数据的换行是正常的。 而读取用var()存入的数据在展示在textarea中,那么数据的就不会换行。 没有具体测试过看来用val()也不妥当。但是这也是必求之策。
再说赋值:
看代码:
$("
" + "
").appendTo("body");$("#t1").text("AAA");$("#t2").val("BBB");alert("t1=" + $("#t1").text() + "/" + $("#t1").val());alert("t2=" + $("#t2").text() + "/" + $("#t2").val());alert($("#x1").html());

      在IE下,不管用val()或text()设定,后续的读取都正常;但在Firefox下,使用val()指定的值,画面上会出现,但是用text()或 是透过html()检视时却是字串。因此在Firefox中,如果你希望设定给textarea值出现在html()中或可以被clone(),请用 text(...)设定。

     且慢!! 事情如果这麽单纯,那麽连小学生也会跨浏览器了。使用text()设定时得注意换行问题,若你在IE中下text("A\nA"),在显示时只会呈现空一 格而不会换行。依我测试的结果,在IE下text("A\r\A")得到显示结果比较接近预期,但是text("A\rA")在Firefox中显示时会 换列,用text()取出时却是连在一起的... 这... 这... 这...

     最后,只能采取懦夫策略,在呼叫.clone()前做了这件事迴避问题:

$theDiv.find("textarea").each(function() { $(this).text($(this).val()); });

     很丑,但看来是有效的! 如果有人有其他好点子,再分享一下吧!

   【著名心得】没有噼成一字马的本事,不要跟别人说你会"跨"浏览器!

转载于:https://www.cnblogs.com/wpcnblog/archive/2011/11/02/2233124.html

你可能感兴趣的文章
你自认为理解了JavaScript?
查看>>
读《程序员的SQL金典》[4]--SQL调优
查看>>
死锁产生的原因及四个必要条件
查看>>
CSS3----background:-webkit-gradient()渐变效果
查看>>
RTP协议分析
查看>>
前后端分离了,然后呢?(转)
查看>>
自定义控件:滑动开关按钮
查看>>
js修改后没反应-看看是不是取的缓存
查看>>
【iCore3 双核心板_ uC/OS-III】例程十一:任务消息队列
查看>>
C#的delegate简单练习
查看>>
【301】IDL与C#混合编程
查看>>
分治法应用之一——Strassen矩阵乘法(转)
查看>>
linux-diff命令
查看>>
必须关注的25位知名JavaScript开发者
查看>>
linq直接执行sql语句
查看>>
POJ - 1170 Shopping Offers (五维DP)
查看>>
【Linux学习】Linux的文件权限(一)
查看>>
python的内存管理机制
查看>>
一个基于 EasyUI 的前台架构(3)封装操作Tabs的JS代码
查看>>
《深入理解Android 卷III》第四章 深入理解WindowManagerService
查看>>