Подтвердить что ты не робот

JQuery обнаруживает, что textarea пуст

Я пытаюсь определить, является ли текстовое поле пустым, если пользователь удаляет то, что уже предварительно заполнено в текстовом поле, используя jQuery.

В любом случае, чтобы сделать это?

Это то, что у меня есть и его не работает

$(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');
            }
        });
4b9b3361

Ответ 1

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

Вы также можете использовать $.trim, чтобы убедиться, что элемент не содержит только пробел:

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

Ответ 2

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

}

Ответ 3

Вам просто нужно получить значение texbox и посмотреть, есть ли в нем что-нибудь:

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

Ответ 4

Чтобы узнать, пусто ли текстовое поле, мы рассмотрим текстовое содержимое textarea, и если имеется один символ sinlge, он не пуст.

Try:

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

$(#textareaid) получает объект textarea jQuery. $(#textareaid).get(0) получает dom node. Мы также могли бы использовать document.getElmentById(textareaid) без использования jQuery. .textContent получает текст textContent этого элемента dom. С помощью .length мы можем видеть, имеются ли какие-либо символы. Поэтому текстовое поле пуст, если внутри него нет символов.

Ответ 5

Я знаю, что вы давно уже не можете найти решение. Итак, это для других, которые приходят посмотреть, как другие люди решают такую же общую проблему problem--, как я.

Примеры в вопросе и ответах указывают на использование jQuery, и я использую .change listener/handler/what, чтобы увидеть, изменится ли моя текстовая область. Это должно позаботиться о ручном изменении текста, автоматическом изменении текста и т.д., Чтобы вызвать

//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/. Сообщение показывает, когда текстовое поле теряет фокус.

Более новый, более подробный пример: https://jsfiddle.net/BradChesney79/tjj6338a/

Использует и сообщает .change(),.blur(),.keydown(),.keyup(),.mousedown(),.mouseup(),.click(), mouseleave() и .setInterval().

Ответ 6

Вот мой рабочий код

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

Ответ 7

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

Ответ 8

Это проверит наличие пустой текстовой области, а также не позволит использовать только те пробелы в текстовой области, которые тоже выглядят пустыми.

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

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

Ответ 9

Ответ 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() не поймал пустой текстовой области для меня. но вся эта вещь (!) работала в сочетании с текстом.

Ответ 10

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

Ответ 11

Вы можете просто попробовать это, и это должно работать в большинстве случаев, не стесняйтесь исправлять меня, если я ошибаюсь:

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

Где obj - это объект вашей textarea.

<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>