【问题标题】:JQuery: .val() is not working for textareaJQuery:.val() 不适用于 textarea
【发布时间】:2012-08-02 10:24:04
【问题描述】:

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

HTML:

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

JS:

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

谢谢!

【问题讨论】:

  • 也许您的页面中有另一个 id="details" 的元素?
  • .val() 正在处理 textareas,检查您的拼写是否正确,最后一个参数上没有“,”
  • .val() 在返回文本区域的实际值的意义上工作正常。定义“不工作”?
  • 一切正常,问题出在代码的其他地方。你得到什么错误?你得到的确切价值是多少?
  • 不工作意味着 $('#details').val() 返回值 'undefined'

标签: jquery textarea


【解决方案1】:

val() 工作得很好......你一定在别处有你的错误。

Example

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

【讨论】:

  • 不工作意味着 $('#details').val() 返回值 'undefined'
  • @user1571064 那么你的选择器不正确。 $('#details') 返回一个空的 jQuery 集合,因此 .val() 将返回 undefined
【解决方案2】:

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

  • 不 - 这不是选择器,返回一个有效对象
  • 否 - 只有一个具有此 ID 的元素
  • 没有 - 据我所知,没有无效的 HTML 或错误的标签使用

是的 - 有一个不是黑客或错误代码的答案:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      奇怪的是,我在尝试清空所有文本区域时遇到了类似的问题。这不是选择器问题,因为我使用 $('textarea') 选择页面中的所有文本区域。 我发现以下方法有效: $('textarea').text('');

      因此,您可以尝试使用以下方式设置 textarea: $('textarea').text('我的新值');

      【讨论】:

      • 你的传奇!谢谢
      • 以防万一来自平行宇宙的我自己读到:如果你不想尝试$('textarea')(或使用#id)或任何其他“直接”方法,因为你确实有一个你通过另一种迂回方式获得的“看似完全有效”的jQuery对象(例如$parentElement.children('textarea').first())我告诉你:停止浪费时间并尽可能直接找到对象,有时.val('')会更新内存中的值而不是 DOM 中的值,不要试图找到替代方案,只需这样做。
      【解决方案5】:

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

      即:

      作品:

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

      不起作用:

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

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

      【讨论】:

      • 在同一条船上...从同名选择器切换到 id 值使得 val() 开始在 textarea 字段上工作。
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        【讨论】:

        • 这是检查窗口中的内容:textarea cols="20" htmlattributes="{ class= form-control, id = pendingUserNotes }" id="PendingUserDto_PendingUserNotes" name="PendingUserDto.PendingUserNotes" 行="2"
        【解决方案8】:

        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.
              }
            });
        });
        

        【讨论】:

          猜你喜欢
          • 2011-04-13
          • 1970-01-01
          • 2020-04-01
          • 2013-04-08
          • 1970-01-01
          • 2014-02-19
          • 2020-11-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多