Как отключить кнопку отправки, если (http), (https) или (www) находятся в текстовой области

#javascript #html #forms #textarea

#javascript #HTML #формы #текстовая область

Вопрос:

У меня уже есть код, который я создал на javascript, который отключает кнопку отправки в форме, если выбран выпадающий список, но я также хочу отключить кнопку отправки, если строка (http), (https) или (www) введена в текстовую область формы. Любая помощь в правильном направлении была бы замечательной.

Ответ №1:

Попробуйте это

 <textarea id="my-textarea"></textarea>

document.querySelector('#my-textarea').addEventListener('input', (event) => {
    if (event.target.value.includes('http') || event.target.value.includes('https') || event.target.value.includes('www')) {
    console.log('invalid');
  } else {
    console.log('valid');
  }
});
  

Вот пример скрипта:https://jsfiddle.net/2qorhekd

Комментарии:

1. спасибо за ваш ответ, но это вообще не работает, собирался попытаться заставить его работать с моей настройкой, а затем изменить его оттуда, но он не работает на jsfiddle. Возможно, я что-то упускаю.

2. Здравствуйте, вы могли бы попробовать еще раз отредактированный fiddlejs, спасибо.

3. Я забыл добавить объект ‘event’ в функцию arrow, но сейчас он работает. просто убедитесь, что скопировали обновленный ответ / код. Спасибо.

4. Ты потрясен, как только я отредактировал это, чтобы кнопка не была отключена, она теперь работает на 100%. Большое вам спасибо!!!

5. Рад помочь, братан. Спасибо. 😀

Ответ №2:

Вы могли бы прослушать keyup событие и проверить входные данные при срабатывании события.

Что-то вроде:

 let illegalWords = ["http", "https", "www"];

function checkText(text) {
  if (text.length >= 1) {
    for (let word of illegalWords) {
      if (text == word) {
        // word found, remove submit button
        console.log("found");
        document.getElementById("submit").style.display = "none";
      }
    }
  }
}  
 <textarea onkeyup='checkText(this.value);'></textarea>
<button type="submit" id="submit">Submit</button>  

Вы могли бы добавить else блок к этому коду, чтобы кнопка отправки появлялась (если в данный момент не видна) при удалении запрещенных слов.

Комментарии:

1. Спасибо за этот ответ, он выглядел многообещающим и работает внутри «Выполнить фрагмент кода», но после внедрения на мою страницу, похоже, он не работает. Вообще ничего не происходит

Ответ №3:

Функция для проверки, содержит ли строка http, https или www

 var valid = function(text){
  var regex = /(https?|www)/;
  return !regex.test(text);
}
  

Комментарии:

1. Сначала не был уверен, как реализовать это без контекста, но как только я получил это, я увидел, что это не сработает для того, что мне было нужно. Тем не менее, спасибо за ваше представление.