jquery控制textarea取值与赋值多个方法

发布时间:2019-12-10编辑:脚本学堂
如何对页面中textarea进行取值与赋值,可以借助jquery来完成,这里分享了jquery实现textarea文本域赋值与取值的方法,jquery给textarea赋值的例子,供大家参考。

一、jquery为textarea取值与赋值问题

1、jquery实现textarea取值:
 

$("#textarea").text();读取,
 

在firefox中读取不出textArea的值,IE正常。

修改为:
 

$("#textarea").val();

问题:
当在一个textarea标签中键入一个回车时,实际上会插入2个符号:nr n 回车符 r 换行符
如果用text()获取textarea中的值,那么存入数据库的数据就只会有r 如果用var()获取textarea中的值,
那么存入数据库的数据就只会有n 这样的区别就是,在IE下,
你如果是读取用text()存入的数据在展示在textarea中,那么数据的换行是正常的。
而读取用var()存入的数据在展示在textarea中,那么数据的就不会换行。
没有具体测试过看来用val()也不妥当。但是这也是必求之策。

2、jquery实现textarea赋值:
代码:
 

$("<div id='x1'><textarea id='t1'></textarea>" +
 "<textarea id='t2'></textarea></div>").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("AnA"),在显示时只会呈现空一格而不会换行。
依测试的结果,在IE下text("ArA")得到显示结果比较接近预期,但是text("ArA")在Firefox中显示时会换列,用text()取出时却是连在一起的。

最后,只能在呼叫.clone()前做了这件事回避问题:
 

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

二、jquery给textarea赋值

复制代码 代码示例:
<html>
<head>
<title>textarea赋值</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="../scripts/jquery-1.3.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("#test").html("testtest");
});
</script>
</head>
<body>
<textarea id="test">
</textarea>
</body>
</html>