jQuery检测textarea是否为空

时间:2010-11-05 15:31:46

标签: jquery

如果用户使用jQuery删除textarea中预先填充的内容,我试图确定textarea是否为空。

无论如何要做到这一点?

这就是我所拥有的,而且它不起作用

$(textarea).live('change', function(){
            if($(this).val().length == 0) {
                $(submitButtonClass).addClass('disabled_button');
                $(submitButtonClass).removeClass('transSubmit');
            } else {
                $('.disabled_button').addClass('transSubmit').css({
                    'cursor':'pointer'
                }).removeClass('disabled_button');
            }
        });

11 个答案:

答案 0 :(得分:94)

if (!$("#myTextArea").val()) {
    // textarea is empty
}

您还可以使用$.trim确保元素不仅包含空格:

if (!$.trim($("#myTextArea").val())) {
    // textarea is empty or contains only white-space
}

答案 1 :(得分:6)

if (!$.trim($("element").val())) {

}

答案 2 :(得分:3)

您只需要获取文本框的值并查看其中是否包含任何内容:

if (!$(`#textareaid`).val().length)
{
     //do stuff
}

答案 3 :(得分:3)

要查明textarea是否为空,我们查看textarea文本内容,如果找到一个sinlge字符则不为空。

尝试:

if ($(#textareaid).get(0).textContent.length == 0){
  // action
}
//or
if (document.getElmentById(textareaid).textContent.length == 0){
  // action
}

$(#textareaid)获取textarea jQuery对象。 $(#textareaid).get(0)让我们成为dom节点。 我们也可以在不使用jQuery的情况下使用document.getElmentById(textareaid).textContent为我们提供了该dom元素的textContent。 使用.length,我们可以看到是否存在任何字符。 因此,如果内部没有字符,则textarea为空。

答案 4 :(得分:3)

我知道你很快就会得到一个解决方案。所以,这是为了其他人来看看其他人如何解决同样的常见问题 - 像我一样。

问题和答案中的示例表明使用jQuery,我正在使用.change监听器/处理程序/看看我的textarea是否发生了变化。这应该照顾手动文本更改,自动文本更改等来触发

//pseudocode
$(document).ready(function () {
    $('#textarea').change(function () {
        if ($.trim($('#textarea').val()).length < 1) {

            $('#output').html('Someway your box is being reported as empty... sadness.');

        } else {

            $('#output').html('Your users managed to put something in the box!');
            //No guarantee it isn't mindless gibberish, sorry.

        }
    });
});

似乎适用于我使用的所有浏览器。 http://jsfiddle.net/Q3LW6/。消息显示textarea失去焦点时。

更新,更全面的示例: https://jsfiddle.net/BradChesney79/tjj6338a/

使用和报告.change(),. blur(),. keydown(),. keyup(),. mousedown(),. mouseup(),. click(),mouseleave()和.setInterval()

答案 5 :(得分:1)

这是我的工作代码

function emptyTextAreaCheck(textarea, submitButtonClass) {
        if(!submitButtonClass)
            submitButtonClass = ".transSubmit";

            if($(textarea).val() == '') {
                $(submitButtonClass).addClass('disabled_button');
                $(submitButtonClass).removeClass('transSubmit');
            }

        $(textarea).live('focus keydown keyup', function(){
            if($(this).val().length == 0) {
                $(submitButtonClass).addClass('disabled_button');
                $(submitButtonClass).removeClass('transSubmit');
            } else {
                $('.disabled_button').addClass('transSubmit').css({
                    'cursor':'pointer'
                }).removeClass('disabled_button');
            }
        });
    }

答案 6 :(得分:1)

if(!$('element').val()) {
   // code
}

答案 7 :(得分:1)

这将检查是否有空白的textarea,也不允许只在textarea coz中也显示为空白的空格。

 var txt_msg = $("textarea").val();

 if (txt_msg.replace(/^\s+|\s+$/g, "").length == 0 || txt_msg=="") {
    return false;
  }

答案 8 :(得分:0)

Andy E的回答帮助我找到了正确的工作方式:

$.each(["input[type=text][value=]", "textarea"], function (index, element) {
if (!$(element).val() || !$(element).text()) {
 $(element).css("background-color", "rgba(255,227,3, 0.2)");
}
});

这个!$(element).val()并没有为我找到一个空的textarea。但是整个爆炸(!)的东西在与文本结合时确实起作用了。

答案 9 :(得分:0)

$.each(["input[type=text][value=]", "textarea[value=]"], function (index, element) {
              //only empty input and textarea will come here
});

答案 10 :(得分:0)

您可以简单地尝试一下,并且它在大多数情况下都可以使用,如果我错了,请随时纠正我:

function hereLies(obj){ if(obj.val() != "") { //Do this here }}

objtextarea的对象。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<body>
<textarea placeholder="Insert text here..." rows="5" cols="12"></textarea>
<button id="checkerx">Check</button>
<p>Value is not null!</p>

<script>
  $("p").hide();
  $("#checkerx").click(function(){
      if($("textarea").val() != ""){
        $("p").show();
      }
      else{
       $("p").replaceWith("<p>Value is null!</p>");
      }
  });

</script>
</body></html>