jquery给textarea赋值问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery给textarea赋值问题相关的知识,希望对你有一定的参考价值。
< div id="d1">< textarea id="t1">< /textarea>< /div>
< div id="d2">< textarea id="t2">< /textarea></div>
以下js代码
$("#d1").hide();
$("#t1").val("111111111");//此句无效
$("#t2").val("222222222");//可正常设值
浏览器FF
求解
$("#t1").val("111111111"); 这一句可以正常设置ID为t1的textarea的值;
你可以用以下任一种方法验证一下:
1、代码后加上 $("#t1").show();
2、代码后加上 alert( $("#t1").val() )
3、用firebug在 $("#t1").val("111111111"); 处设置断点,添加监控表达式 $("#t1").val() 可以看到 参考技术A jquery给textarea赋值的方法跟普通input一样。
举例说明,有如下代码:
$("<div id='x1'><textarea id='t1'></textarea>" +
"<textarea id='t2'></textarea></div>").appendTo("body");
那么给id='t1'的textarea赋值的方法如下:
$("#t1").text("AAA");
$("#t2").val("BBB");
分别说明两种写法的区别:
1、在IE下,不管用val()或text()赋值,后续的读取都正常;
2、在Firefox下,使用val()指定的值,画面上会出现,但是用text()或是透过html()检视时却是字串。因此在Firefox中,如果希望设定给textarea值出现在html()中或可以被clone(),请用text(...)设定。 参考技术B $("#t1").val("111111111");其实是有效的,只是你看不到,因为在这之前你把第一个div隐藏了:
$("#d1").hide(); 参考技术C 问题如下: <span>11</span> <span>22</span> <span>33</span> <$("span").click(function () $("textarea").val($("textarea").,nAZcYb
用JQuery的text()方法赋值的问题
用JQuery的text()方法赋值,textarea显示正常,在页面手动改变了textarea中的文字,然后又触发一次text()方法,结果不能改变显示出来的文字,一直显示手动改变后的值。
脚本是在Chrome和Firefox中测试的,改用val()就正常了。究竟是为什么呢?
但是对于这中网页上的输入元素,他们的值在手动改了之后就不是默认值了。
对于textarea元素,你用text()方法修改的只是html的值,也就是修改了它的默认值(可以在crome浏览器下用审查元素查看效果,是html修改了;而修改value就不会修改html)。
如果没有修改过的textarea,你用text()修改是能够看见效果的,因为现在显示的是默认值;
当你修改过后,就只能用val()方法去修改它的值了。
还有的默认值的区别是,在表单中有个元素
<input type="reset" />
会重置表单内容,就会变成默认值。这个时候用text()就对textarea有用了 参考技术A jQuery 取值、赋值的基本方法,参考如下:
/*获得TEXT.AREATEXT的值*/
var textval = $("#text_id").attr("value");
//或者
var textval = $("#text_id").val();
/*获取单选按钮的值*/
var valradio = $("input[@type=radio][@checked]").val();
/*获取一组名为(items)的radio被选中项的值*/
var item = $('input[@name=items][@checked]').val();
/*获取复选框的值*/
var checkboxval = $("#checkbox_id").attr("value");
/*获取下拉列表的值*/
var selectval = $('#select_id').val();
//文本框,文本区域:
$("#text_id").attr("value",'');//清空内容
$("#text_id").attr("value",'test');//填充内容
//多选框checkbox:
$("#chk_id").attr("checked",'');//使其未勾选
$("#chk_id").attr("checked",true);//勾选
if($("#chk_id").attr('checked')==true) //判断是否已经选中 参考技术B 先分清html(),text()和val()。
举个例子:<input type="xxx" value="abcd">1234</input>
text()输出标签中间的内容:1234。
val()输出value属性的值:abcd。
html()输出整段html:<input type="xxx" value="abcd">1234</input>。
一般val()一般只作用于表单元素 参考技术C 当然是val()啦。textarea没有text只有value属性
以上是关于jquery给textarea赋值问题的主要内容,如果未能解决你的问题,请参考以下文章