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 }