JQuery TextArea的取值与赋值问题---(textarea中回车清空问题)——个人转载整理
JQuery TextArea的取值与赋值问题---(textarea中回车清空问题)
JQuery TextArea的取值与赋值问题
首先,说明这不是一个简单的问题!
先说取值:
$("#textarea").text();读取,最近测试时候发现在firefox中读取不出textArea的值,IE正常 于是修改为:
$("#textarea").val(); 问题解决,不过搜索时,发现有人提另一个问题:在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()); });很丑,但看来是有效的! 如果有人有其他好点子,再分享一下吧!
【著名心得】没有噼成一字马的本事,不要跟别人说你会"跨"浏览器!
------------------重要问题----------------------------------
textarea中把回车键当作快捷键时候,并不要他显示换行动作。但浏览器处理了连个动作。
无赖$("textarea").val("");也清空不了里面的内容。网上资料查阅无数。竟多少前辈也被困于此,拳脚不得施展。
晚辈愚笨,偶然间坠入山洞山东,习得高人创的习武心得。追溯起源,终探得究竟。
看招:
$(document).keypress(function(e){
if(e.ctrlKey && e.which == 13 || e.which == 10 || e.which == 13) {
$("#send").click();
e.preventDefault();//屏蔽enter对系统作用。按后增加\r\n等换行
$("#what").val("");
}
});
e.preventDefault();就是屏蔽enter键接下来的操作,啊哈哈哈。知道此招的固然是高人,莫笑小弟之欣喜。
心得总结:
所谓的困难,就是克服过去的不值一提!
总结
技术生涯也好比漫漫人生路,总是不断地遇到问题,解决问题。当人也会遇到一些棘手的问题让人招架不住,隔着屁儿着凉死翘翘。
八过,咱们把一些遇到的问题,记下来。下载墙壁上,N年过后,某位后人遇到同类问题题,也不至于费尽心思浪费光阴啊。
整天浪费光阴于此,又何以解救天下苍生呢。
施主,你说贫僧说得对不对呀!啊哈哈哈……
以上文章转载自网络,是否正确并未验证,请谨慎使用。
------------------------------------------------
20191211
textarea标签不应该换行,应该是:
<textarea id='t1'></textarea>
开始标签和结束标签之前不应该有空格,也不应该换行。