JavaScript获取动态textarea值仅得到对象,如何解决?
解决textarea值获取问题
看起来你应该是在处理SharePoint表单里的textarea对吧?我来帮你捋清楚问题所在,再给你几个靠谱的解决办法:
首先得指出你原来代码的两个核心问题:
- 你选择的是
div元素,但实际目标是textarea,所以拿到的对象自然不是你要的输入框; - 你用的
title值是"Descripción",但实际textarea的title是"Descripción Campo obligatorio",选择器完全匹配不上。
下面给你几种可行的解决方法:
方法1:直接通过ID获取(最准确)
你的textarea有唯一的ID,直接用ID选择器是最稳妥的方式,不会出现匹配错误:
var textareaVal = $("#Descripci_x00f3_n_9b68a148-3221-43c6-abf3-bb32afd3e51b_$TextField").val(); console.log(textareaVal); // 输出输入框的值
方法2:通过修正后的title选择器获取
如果ID太长不好记,可以用title属性的包含匹配(匹配title里包含Descripción的textarea):
var textareaVal = $("textarea[title*='Descripción']").val();
或者也可以精确匹配完整的title值:
var textareaVal = $("textarea[title='Descripción Campo obligatorio']").val();
方法3:利用你发现的同步input获取
你提到的那个ID以ClientF开头的input,是SharePoint表单里的隐藏同步字段——它会实时同步textarea的输入内容,所以也可以这样获取值:
var inputVal = $("input[id^='ClientF']").val(); console.log(inputVal);
这种方式适合你需要拿到和表单提交一致的值的场景,因为SharePoint有时候会以这个隐藏input的值作为最终提交内容。
总结一下:优先用ID选择器,其次用修正后的title选择器,同步input作为备选方案,根据你的实际场景选就行~
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

