【问题标题】:How to tell if user entered text into a textarea using jquery如何判断用户是否使用 jquery 在文本区域中输入了文本
【发布时间】:2013-02-20 15:11:02
【问题描述】:

我正在做一些表单验证,我有一个文本区域,其中有一个初始占位符,我正在尝试检查用户是否在文本区域中输入了任何数据。

如果我使用 jquery .text() 检查它看不到在浏览器级别添加的文本,如果我使用 .val() 首先没有任何更新。那么在提交表单之前进行此检查的正确方法是什么?

<div>
   <textarea class="myUserText"></textarea>
</div>

function validateForm(){
   if($('.myUserText').text()==""){
        //do something here
   }
}

【问题讨论】:

    标签: jquery forms validation twitter-bootstrap textarea


    【解决方案1】:

    ...或者如果您有兴趣使用一些最新的 HTML5 选项:

    祝你好运!

    【讨论】:

      【解决方案2】:

      .val() 应该可以工作。也捕获提交事件:

      $('form').submit(function(e) {
          if (!$('.myUserText').val() == '') {
              e.preventDefault();
              // The form won't submit
          }
      });
      

      【讨论】:

      • 嗯,仍然不适合我。如果我有 textarea 的占位符,会有什么不同吗?
      • @JSilva:console.log($('.myUserText').val()) 向控制台输出什么?
      • 没关系。这有效!谢谢。认为我的选择器有问题。我将其更改为基于类而不是名称进行选择。很高兴知道它可以与占位符一起使用。
      【解决方案3】:

      如果我使用 .val(),那么一开始就没有任何更新。那么在提交表单之前进行此检查的正确方法是什么?

      val 是要检查的正确内容,如果用户在 textarea 中输入了内容,则为 != ""

      当然,他们输入的内容可能只是一个换行符,这可能不是您想要的。所以你可以考虑:

      if($('.myUserText').val().replace(/^\s+/, "") === "")
      

      ...忽略前导空格。

      【讨论】:

        猜你喜欢
        • 2011-10-29
        • 2023-04-03
        • 2011-04-09
        • 2017-11-25
        • 1970-01-01
        • 1970-01-01
        • 2017-04-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多