1.情景再现
本人想通过ajax提交表单。于是,自己遍历form的子元素,获取各表单域的值。遇到textarea取值的时候,我用的是innerHTML获取值。结果各种尝试,textarea的值始终为空。
明明已经在textarea输入了内容,可以innerHTML始终获取不了值。因为一直以来,我都认为textarea没有value属性,都是通过innerHTML赋值的。
多次尝试未果,我打开chrome的console神器,动态为textarea内容区域赋值,发现console台的数据并不会改变,一直以来,改变元素的属性和值,控制台都会相应变化的,这招屡试不爽。但是这次怎么修改textarea内容,console也不变化,修改console内容,textarea内容也不变化。
就是这样一个问题,获取textarea的值,花费了2个小时。
2.恍然大悟
终于我尝试着使用textarea的value属性,得到了我在textarea输入的内容。
3.总结
以前看到网上说的textarea没有value属性。其实并不准确,只是给textarea赋值的时候不能用value,要用innerHTML。但是取textarea值的时候,还是要用value。
真的如此吗?
目前来看,我在console里给表单赋值,使用value也是可以赋值的。而且能表现到控件上。只是值没有被加载textarea标签之间而已。
多么痛的领悟!