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');
}
});
Ответы
Ответ 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>