jQuery détecte si textarea est vide

J’essaie de déterminer si une zone de texte est vide si un utilisateur supprime ce qui est déjà pré-rempli dans la zone de texte en utilisant jQuery.

En tout cas pour faire ça?

C’est ce que j’ai et ça ne marche pas

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

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

Vous pouvez également utiliser $.sortingm pour vous assurer que l’élément ne contient pas uniquement des espaces blancs:

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

Pour savoir si la zone de texte est vide, consultez le contenu textarea text et s’il y a un caractère sinlge à trouver, il n’est pas vide.

Essayer:

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

$(#textareaid) nous procure l’object textarea jQuery. $(#textareaid).get(0) nous donne le noeud dom. Nous pourrions également utiliser document.getElmentById(textareaid) sans utiliser jQuery. .textContent nous obtient le textContent de cet élément dom. Avec .length on peut voir s’il y a des caractères présents. Donc la zone de texte est vide au cas où il n’y aurait pas de caractères à l’intérieur.

Je sais que vous avez une solution depuis longtemps. Donc, c’est pour les autres qui viennent voir comment d’autres personnes résolvent le même problème commun – comme moi.

Les exemples dans la question et les réponses indiquent l’utilisation de jQuery et j’utilise l’écouteur / gestionnaire / .change pour voir si ma zone de texte change. Cela devrait prendre en charge les modifications de texte manuelles, les modifications de texte automatisées, etc. pour déclencher la

 //pseudocode $(document).ready(function () { $('#textarea').change(function () { if ($.sortingm($('#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. } }); }); 

Semble fonctionner sur tous les navigateurs que j'utilise. http://jsfiddle.net/Q3LW6/

Exemple plus récent, plus complet: https://jsfiddle.net/BradChesney79/tjj6338a/

Utilisations et rapports .change (), .blur (), .keydown (), .keyup (), .mousedown (), .mouseup (), .click (), mouseleave () et .setInterval ().

Il vous suffit d’obtenir la valeur de la texbox et de voir si elle contient quelque chose:

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

Voici mon code de travail

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

Cela permettra de vérifier si la zone de texte est vide et ne permet pas seulement les espaces dans textarea coz qui semblent vides aussi.

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

La réponse d’Andy E m’a aidé à trouver la bonne façon de travailler pour moi:

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

Ce !$(element).val() n’a pas intercepté une textarea vide pour moi. mais tout ce truc (!) a bien fonctionné lorsqu’il est combiné avec du texte.

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