Использование функции "пусто" на входе с помощью JQuery

Я пытаюсь это сделать: если $ ('# name') пусто () alert ("Введите допустимый ввод") Полагаю, я делаю что-то подобное?

if $('#name') == empty() { 
alert("enter valid input");
}

Я хочу использовать функцию, чтобы я мог привыкнуть к многократному использованию одной и той же функции. Я понимаю, что могу просто ввести его индивидуально, не используя функцию переключения. В статьях вроде этой: Проверьте, пусты ли входы, используя jQuery, похоже, не использует метод переключения или функции.

function empty(e){
    switch (e) {
    case "":
    case 0:
    case "0":
    case null:
    case false:
    case typeof this == "undefined":
        return true
    default: return false 

    }
    }

</script>

 $(document).on('click','#add_btn',function (){
           if $('#name') 
         $.ajax({
                type:'POST',
                url:'add.php',
                //dataType: "json",
                data: {
                    "name": $('#name').val(),
                    "coffee": $('#coffee').val(),
                }, 
                success: function(data){ 
                    alert(data);
                    if (data=='ADD_OK') {
                      location.reload();
                    } else {
                         alert('something wrong');
                    }
                      }
                 })
            });
    </script>
if (empty($('#name').val())
Taplar 17.12.2018 17:45
$(selector) вернет объект jQuery, который не будет передавать == или === что-либо, кроме самого себя.
Taplar 17.12.2018 17:46

Ваш код похож на мое следующее предположение. Мне это просто "показалось" забавным, потому что у empty нет () после ... empty (). Спасибо.

chess master1 17.12.2018 17:48

case typeof this == undefined не имеет смысла. Исследуется ценность e. Это значение case будет либо true, либо false.

Pointy 17.12.2018 17:50

@RoryMcCrossan val () может вернуть значение undefined, если элемент не найден, не так ли?

Taplar 17.12.2018 17:52
jQuery('#tod').val() в моей консоли на сайте возвращает undefined
Taplar 17.12.2018 17:53

@Taplar да, ты прав. Моя ошибка. Нужно выяснить, когда это изменилось, или я схожу с ума

Rory McCrossan 17.12.2018 17:53

.val () возвращает неопределенные, а также пустые строки

Osakr 17.12.2018 17:53

Вы могли бы это сделать, [undefined, ''].indexOf($(selector).val()). Или просто ! это

Taplar 17.12.2018 17:55

Ага. некоторые думают, что переключатель должен быть === "undefined". (три ===) Была дискуссия из другой статьи, которую я прочитал, с неоднозначными мнениями.

chess master1 17.12.2018 17:58
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
10
65
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Хорошо, позволь мне помочь тебе немного убрать твой беспорядок.

Прежде всего, давайте перепишем пустую функцию, чтобы она лучше работала и выглядела лучше:

function empty(value) {
   return value === null || value === "" || value === undefined || (value.isArray ? value.length == 0 : false)
}

Теперь предположим, что у вас есть два входа, и вы хотите проверить их значения:

<input id = "input1" type = "text" />
<input id = "input2" type = "text" />

Теперь, используя jQuery, вы выбираете эти входы и отправляете их значения в пустую функцию:

var ids = ['input1' , 'input2'];
for (let id of ids) {
   if (empty($('#' + id).val())) {
      alert("The input: " + id + " is empty!");
   }
}

И это почти все, функция многократного использования, чтобы проверить, пусто ли значение.

хорошо, спасибо за ваше время, опубликованное в качестве ответа. быстрый вопрос, не должно ли оно возвращать истину? потому что если "" произошло, пусто должно == истина

chess master1 17.12.2018 18:15

Он возвращает истину, если значение является пустой строкой, значением NULL, неопределенным или в случае, если значение является массивом, если массив пуст (его длина == 0), возвращается истина.

Osakr 17.12.2018 18:18

Вот полное решение благодаря тем, кто разместил:

function empty(value) {
   return value === null || value === "" || value === undefined || (value.isArray ? value.length == 0 : false)
}
</script>

<script type = "text/javascript"> 

        $(document).on('click','#add_btn',function (){
            var ids = ['name'];
for (let id of ids) {
    if (empty($('#name').val())) {
    alert("Input: "  +id+ " is not a valid input");
  }
   if (!empty($('#name').val())) {
         $.ajax({
                type:'POST',
                url:'add.php',
                //dataType: "json",
                data: {
                    "name": $('#name').val(),
                    "coffee": $('#coffee').val(),
                }, 
                success: function(data){ 
                    alert(data);
                    if (data=='ADD_OK') {
                      location.reload();
                    } else {
                         alert('something wrong');
                    }
                      }
                 })
   } }
            });
    </script>

На самом деле нет необходимости в двух «если». Второй if (if (!empty($('#name').val()))) можно заменить на else в первом if

Osakr 02.01.2019 11:15
if ($('#name').val() === undefined || $('#name').val().length == 0){ 
   alert("enter valid input");
}

Предполагая, что вы вводите $('#name'), это html-ввод. Первое условие - проверка, есть ли здесь ввод

Другие вопросы по теме