JQuery:.val()不适用于textarea

时间:2012-08-02 10:24:04

标签: jquery textarea

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

HTML:

<textarea id="details" class="required" rows="5"></textarea>

JS:

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

谢谢!

8 个答案:

答案 0 :(得分:6)

val()工作得很好......你必须在其他地方犯错。

<强> Example

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

答案 1 :(得分:3)

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

  • 不 - 它不是选择器,返回一个有效对象
  • 不 - 只有一个元素具有此ID
  • 不 - 据我所见,没有无效的HTML或错误的代码使用

是的 - 答案不是黑客或坏代码:

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

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

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

答案 4 :(得分:1)

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

即:

工作:

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

不起作用:

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

右键单击TextAreaFor,然后选择“检查”。使用由浏览器生成的ID,由于某种原因,即使您在htmlAttributes中指定了ID,它也会为TextArea生成自己的ID。 在代码中: @ Html.TextAreaFor(model => model.PendingUserDto.PendingUserNotes,new {htmlAttributes = new {@class =“ form-control”,id =“ pendingUserNotes”}}) 在检查窗口中: 测试说明

答案 7 :(得分:0)

val() 工作正常。您获取的参数不正确。

HTML代码

<textarea id="details" rows="5" placeholder="please enter id pass"></textarea>
<button id="get_content">get Content</button>
<div id="html_log"></div>

Javascript 代码

$("#get_content").click(function(){
   var datas = $('#details').val();
   $.ajax({
      type: "GET",
      url: "https://reqres.in/api/users",
      data: {
          id : datas, //id pass
      },
      success: function(dataResult){
          $('#html_log').text(dataResult.data['first_name']); //Check your returen parameter.
      }
    });
});