JQuery:.val()不适用于textarea

我试图阅读textarea的内容,但.val()不适用于我的textarea。 如果有人为我提供解决方案,我会很高兴。 这是我的代码:

HTML:

  

JS:

 $.ajax({ type: "GET", url: "reserve.php", data: { details : $('#details').val(), ... }, ... }); 

谢谢!

val()工作得很好……你必须在其他地方有你的错误。

可能你的选择器不匹配。 检查拼写错误以及是否应用了正确的前缀( #为ID或.为类)

这是一个有效的请求,因为我遇到了同样的问题并且可以报告以下内容:

  • 不 – 它不是选择器,返回一个有效对象
  • 不 – 这个id只有一个元素
  • 不 – 就我所见,没有无效的HTML或错误的标签使用

是的 – 有一个答案不是黑客或坏代码:

 $('#myTextArea')[0].value 

我有同样的问题。 在我的案例中的解决方案是,有两个元素id为“comment”。 jQuery返回第一个值为空的值。 如果我查看源代码,我只看到一个,因为第二个是在AJAX调用之后添加的。 但是当在检查员中搜索“评论”(包括引号)时,我看到了两个元素。 我希望这对你也有帮助。

奇怪的是,我有一个类似的问题试图清空所有textareas。 它不是一个选择器问题,因为我用$(’textarea’)选择页面中的所有textareas。 我发现以下工作:$(’textarea’)。text(”);

所以你可以尝试设置textarea:$(’textarea’)。text(’my new value’);

详细信息:encodeURIComponent($(’#details’)。val())

我的问题是我使用的是名称选择器而不是id选择器。

即:

作品:

 'content': $(this).find('#text_content').val(), 

不起作用:

 'content' : $(this).find('input[name=text_content]').val(), 

不知道为什么名称选择器不适用于textarea(它适用于所有其他字段),但是你有它。