Задать вопрос
@YakutD

Как заблокировать submit при нахождении стоп-слов?

Вроде простая задача,но у меня ни в какую не получается.
Есть список стоп-слов, храню их в массиве. Есть input в который пользователь вводит текст. И есть submit который должен быть disabled если пользователь введет хотя бы одно стоп слово.
Вот мой код:
$(document).ready(function(){
  
   $('.myinput').bind("keyup mousemove", function(){
         
       var str = $(".myinput").val();//Выбираем ввод пользователя
       
        var arr = ["лягушка","березка","черепица"];// массив стоп слов
    
    //перебор массива стоп-слов
       
 for (var i = 0; i< arr.length; i++){
            // alert(arr[i]);
    if (str.indexOf(arr[i]) != -1)
        {
        $('.mysubmit').prop('disabled',true);
        }
else {
        $('.mysubmit').prop('disabled',false);
    }
       }
   });

});//end ready

Если я по деревянному пробую вписать каждое стоп-слово в else if то все работает,но это же долго,тем более предполагается наличие куда большего списка стоп-слов.Что я делаю не так?И есть ли какие-либо jquery плагины для валидации формы по вводимым словам?
  • Вопрос задан
  • 237 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Цикл не нужен:

$('.mysubmit').prop('disabled', arr.indexOf(str) !== -1);

UPD. А-а-а, чёрт возьми - у вас поиск слов по тексту, а не проверка соответствия текста одному из слов... Тогда так:

$('.mysubmit').prop('disabled', arr.some(n => str.indexOf(n) !== -1));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы