У меня есть этот HTML:
<input type="text" name="textField" />
<input type="submit" value="send" />
Как я могу сделать что-то вроде этого:
- Когда текстовое поле пусто, отправка должна быть отключена (disabled = "disabled").
- Когда что-то вводится в текстовое поле, чтобы удалить отключенный атрибут.
- Если текстовое поле снова становится пустым (текст удаляется), кнопка отправки должна быть снова отключена.
Я попробовал что-то вроде этого:
$(document).ready(function(){
$('input[type="submit"]').attr('disabled','disabled');
$('input[type="text"]').change(function(){
if($(this).val != ''){
$('input[type="submit"]').removeAttr('disabled');
}
});
});
... но это не работает. Любые идеи?
javascript
jquery
html
forms
kmunky
источник
источник
Ответы:
Проблема в том, что событие изменения срабатывает только тогда, когда фокус перемещается от входа (например, кто-то щелкает на входе или вкладках из него). Попробуйте вместо этого использовать keyup:
источник
input id="loginButton" type="submit" name="Submit" value="Login" disabled>
покажет отключенную кнопку с отключенными классами css.источник
Этому вопросу уже 2 года, но это все еще хороший вопрос, и это был первый результат Google ... но во всех существующих ответах рекомендуется установить и удалить атрибут HTML (removeAttr ("disabled")) "disabled", что не является правильный подход. Существует много путаницы в отношении атрибута против собственности.
HTML
«Отключено» в
<input type="button" disabled>
разметке называется логическим атрибутом W3C .HTML против DOM
Quote:
https://stackoverflow.com/a/7572855/664132
JQuery
Связанные с:
Соответствующие:
Резюме
Чтобы [...] изменить свойства DOM, такие как [...] отключенное состояние элементов формы, используйте метод .prop () .
( http://api.jquery.com/attr/ )
Что касается отключения при изменении, то часть вопроса: есть событие под названием «вход», но поддержка браузера ограничена, и это не событие jQuery, поэтому jQuery не заставит его работать. Событие изменения работает надежно, но вызывается, когда элемент теряет фокус. Таким образом, можно объединить два (некоторые люди также слушают keyup и paste).
Вот непроверенный фрагмент кода, чтобы показать, что я имею в виду:
источник
Чтобы удалить отключенный атрибут, используйте
и добавить отключенное использование атрибута,
Наслаждаться :)
источник
или для нас, которые не любят использовать jQ для каждой мелочи:
источник
Эрик, ваш код не работает для меня, когда пользователь вводит текст, а затем удаляет весь текст. Я создал другую версию, если кто-то испытывал такую же проблему. вот вы, ребята
источник
Это будет работать так:
Убедитесь, что в вашем HTML есть атрибут «отключен»
источник
Вот решение для поля ввода файла .
Чтобы отключить кнопку отправки для поля файла, когда файл не выбран, включите его после того, как пользователь выберет файл для загрузки:
Html:
источник
Вы также можете использовать что-то вроде этого:
вот живой пример
источник
Для формы авторизации:
Javascript:
источник
Если кнопка сама по себе является кнопкой в стиле jQuery (с .button ()), вам необходимо обновить состояние кнопки, чтобы правильные классы добавлялись / удалялись после удаления / добавления атрибута disabled.
источник
Ответы выше не относятся также к проверке событий вырезания / вставки в меню. Ниже приведен код, который я использую для того и другого. Обратите внимание, что на самом деле действие происходит с тайм-аутом, потому что события обрезки и прошедшие события на самом деле срабатывают до того, как произошло изменение, поэтому тайм-аут дает немного времени для того, чтобы это произошло.
источник
Ваниль JS Solution. Это работает для всей формы, а не только один вход.
В вопросе выбран тег JavaScript.
Форма HTML:
Некоторое объяснение:
В этом коде мы добавляем событие keyup в html-форму и при каждом нажатии клавиши проверяем все поля ввода. Если хотя бы одно имеющееся у нас поле ввода пустое или содержит только пробелы, мы присваиваем истинное значение отключенной переменной и отключаем кнопку отправки.
Если вам нужно отключить кнопку отправки, пока не будут заполнены все необходимые поля ввода - замените:
с:
где required_inputs - это объявленный массив, содержащий только обязательные поля ввода.
источник
Мы можем просто иметь, если & еще. Если предположим, что ваш ввод пуст, мы можем иметь
иначе мы можем изменить ложь в истину
источник
Отключить:
$('input[type="submit"]').prop('disabled', true);
Включить:
$('input[type="submit"]').removeAttr('disabled');
Приведенный выше код включения более точен, чем:
Вы можете использовать оба метода.
источник
Мне пришлось немного поработать, чтобы это соответствовало моему случаю использования.
У меня есть форма, где все поля должны иметь значение перед отправкой.
Вот что я сделал:
Спасибо всем за ответы здесь.
источник
Пожалуйста, смотрите код ниже, чтобы включить или отключить кнопку Отправить
источник
взгляните на этот фрагмент из моего проекта
$(this).attr('disabled', 'disabled');
источник
Все виды решения поставляются. Поэтому я хочу попробовать другое решение. Просто будет проще, если вы добавите
id
атрибут в поля ввода.Теперь вот ваш
jQuery
источник
Надеюсь, приведенный ниже код поможет кому-то .. !!! :)
источник