jQuery检测textarea是否为空

我想确定一个textarea是否为空,如果用户使用jQuery删除了已经在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'); } }); 
 if (!$("#myTextArea").val()) { // textarea is empty } 

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

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

我知道你早已得到一个解决scheme。 所以,这是为了看看其他人如何解决同样的问题 – 像我一样。

问题和答案中的示例指出了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/

更新,更彻底的例子: https //jsfiddle.net/BradChesney79/tjj6338a/

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

你只需要得到texbox的价值,看看它是否有任何东西:

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

这是我的工作代码

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

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。 但是整个爆炸(!)的东西在与文本结合的时候起作用了。

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

要找出textarea是否为空,我们看一下textarea文本内容,如果find一个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是空的,如果里面没有字符的话。

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