У меня есть диалог jQuery, который требует от пользователя ввода определенной информации. В этой форме у меня есть кнопка «Продолжить». Мне бы хотелось, чтобы эта кнопка «продолжить» была включена только после того, как все поля содержат содержимое, иначе она останется отключенной.
Я написал функцию, которая вызывается каждый раз, когда изменяется статус поля. Тем не менее, я не знаю, как включить и отключить диалоговую кнопку из этой функции. Что я должен делать?
К сожалению, я забыл упомянуть, что эти кнопки были созданы следующим образом:
$(function() {
$("#dialog").dialog({
bgiframe: true,
height: 'auto',
width: 700,
show: 'clip',
hide: 'clip',
modal: true,
buttons: {
'Add to request list': function() {
$(this).dialog('close');
$('form').submit();
},
'Cancel': function() {
$(this).dialog('close');
}
}
})
});
Ответы:
Вы хотели бы установить отключенное свойство
Обновление : Ага, я вижу сложность сейчас. В диалоге jQuery есть одна строка, которая будет полезна (в разделе «кнопки»).
Вам нужно будет получить коллекцию кнопок из диалогового окна, пройтись по ней, чтобы найти нужную вам, а затем установить атрибут disabled, как я показал выше.
источник
.prop('disabled', true)
что предпочтительнее в jQuery 1.6+Это очень просто:
источник
.prop('disabled', true)
что предпочтительнее в jQuery 1.6+Вы все усложняете простую задачу; В диалоге jQueryUI есть два способа установить кнопки по определенной причине.
Если вам нужно только установить обработчик щелчка для каждой кнопки, используйте параметр, который принимает
Object
аргумент. Для отключения кнопок и предоставления других атрибутов используйте параметр, который принимаетArray
аргумент.В следующем примере кнопка будет отключена и будет корректно обновляться ее состояние с применением всех CSS-классов и атрибутов jQueryUI.
Шаг 1 - Создайте свой диалог с помощью
Array
кнопок:Шаг 2 - Включить / отключить кнопку Готово после создания диалога:
источник
each
цикл не нужен. Укажитеclass
атрибут вbuttons
массиве, и вы можете использовать его, чтобы найти нужный элемент.Если вы создаете диалог, предоставляющий идентификаторы для кнопок,
мы можем отключить кнопку с помощью следующего кода:
источник
Я хотел, чтобы можно было найти кнопку по имени (так как у меня есть несколько кнопок в моем диалоговом окне jQuery UI). У меня также есть несколько диалогов на странице, поэтому мне нужен способ получить кнопки определенного диалога. Вот моя функция:
источник
Это отключает кнопку:
Вы должны добавить идентификатор диалога, если у вас есть несколько диалогов на странице.
источник
Вот пример из вопроса, модифицированного для отключения кнопки после нажатия:
Кроме того, следующий вопрос также будет полезен для этого: Как отключить кнопку в диалоговом окне пользовательского интерфейса jQuery?
источник
Я нашел простой способ отключить (или выполнить любое другое действие) на кнопку диалога.
Вы просто выбираете родителя своего диалога и находите все кнопки. Затем, проверяя текст вашей кнопки, вы можете определить свои кнопки.
источник
Я получил это работая с методом,
.dialog("widget")
который возвращает сам диалог DIV. Если вы находитесь в диалоге методов:источник
С точки зрения удобства использования, обычно лучше оставлять кнопку включенной, но показывать сообщение об ошибке, если кто-то пытается отправить неполную форму. Это сводит меня с ума, когда кнопка, которую я хочу нажать, отключена, и нет понятия, почему.
источник
Попробуй это:
источник
Вот моя функция enableOk для диалога jQuery:
«Первая» кнопка - самая дальняя справа. Вы оба отключаете кнопку и устанавливаете отключенный класс диалога, чтобы получить правильный визуальный эффект.
источник
В устаревшем пользовательском интерфейсе jQuery (версия 1.7.3) я мог просто использовать
просто отключить кнопку на самом элементе DOM. Теперь, когда мы обновились до более нового пользовательского интерфейса jQuery (версия 1.8.7), этот метод больше не работает в Firefox, но я могу просто вызвать определенные кнопки отключения и включения пользовательского интерфейса jquery для объектов jquery кнопки:
источник
хаха, только что нашел интересный способ получить доступ к бутылкам
Кажется, вы все не знаете, что в аргументах есть объект события ...
кстати, он просто получает доступ к кнопке из-за обратного вызова, в общем случае, хорошо добавить идентификатор для доступа
источник
Если вы действительно хотите отключить кнопку, я обнаружил, что вам также нужно вызвать метод .unbind () для нее. В противном случае кнопка все еще может быть активной, и двойной щелчок может привести к нескольким отправкам формы. Следующий код работает для меня:
источник
Я нашел обходной путь, который может применяться к людям, пытающимся сделать что-то подобное. Вместо того, чтобы отключить кнопку, я поставил простой
if
оператор, чтобы проверить, был ли установлен флажок.Если это не так, он отображал простое сообщение о том, что флажок должен быть проверен перед отправкой.
Например:
Во всяком случае, я надеюсь, что это помогает кому-то.
источник
Я создал функцию jQuery, чтобы немного облегчить эту задачу. Просто добавьте это в ваш файл JavaScript:
Отключить кнопку «ОК» в диалоге с классом «диалог»:
Включить все кнопки:
Включите кнопку «Закрыть» и измените цвет:
Надеюсь, это поможет.
источник
К сожалению, ни одно из приведенных здесь решений не сработало для нескольких диалогов на странице.
Также проблема заключалась в том, что оригинальный диалог сам по себе не содержал панель кнопок, но являлся ее родным братом.
Итак, я пришел к выбору по идентификатору диалога следующим образом:
...
...
и затем та же функция getFirstDialogButton () может быть позже использована для включения кнопки, например, после успешной проверки.
Надеюсь, это может кому-то помочь.
источник
Вот пример, который я только что реализовал, используя метод Array для назначения кнопок, который затем позволяет мне позже использовать селекторы идентификаторов - так же, как принятый первоначально заявленный ответ - для включения / выключения кнопок и даже для показа / скрытия их полностью, как я делает.
После успешной отправки я отключаю и скрываю две кнопки и включаю кнопку ОК, которая была отключена по умолчанию.
Надеюсь это поможет.
источник
Я создал функцию, аналогичную той, что делал Ник, но мой метод не требует установки dialogClass, и вы сможете получать кнопки определенного диалога через идентификатор (если в вашем приложении их несколько)
Итак, если вы создали диалог так:
Вы можете получить кнопки, выполнив следующие действия:
Отключить:
Включить:
источник
Просто для справки, этот пост помог мне решить мою проблему. Короче говоря, вы должны установить для атрибута disabled значение disabled, а не false:
Вот как выглядит весь код, я также добавил несколько стилей, чтобы он выглядел отключенным:
источник
Я думаю, что это должно работать со всеми,
источник
Чтобы отключить кнопку Сохранить в моем диалоговом окне, используйте следующую строку в вашей функции.
Чтобы изменить текст в кнопке, используйте следующую строку (это меняет текст кнопки отмены на «Закрыть меня»)
источник
@Chris Вы можете использовать следующие строки кода для включения / выключения диалоговых кнопок до тех пор, пока ваш флажок не будет отмечен / снят
Оригинальный источник: http://jsfiddle.net/nick_craver/rxZPv/1/
источник
Вызов,
.attr("disabled", true)
конечно, работает, но используя jQuery, вы хотели бы сделать это более «сахарным» способом, поэтому я написал простое расширение:Теперь у вас есть функции
enable()
иdisable()
, таким образом, вы можете выполнять свою работу следующим образом:Который такой же как
и
источник
Это сделало работу для меня:
источник
В мире jQuery, если вы хотите выбрать объект из набора элементов DOM, вы должны использовать eq () .
Примеры:
или
источник
Согласно документации :
https://api.jqueryui.com/dialog/#option-buttons
Чтобы иметь возможность просто выбрать кнопку, вы можете добавить к ней собственный класс CSS, который должен быть включен / отключен.
Тогда включение / отключение будет выглядеть так:
источник
Если кто-то хочет заменить кнопку чем-то вроде анимации загрузки при нажатии (например, когда кнопка «Отправить» отправляет форму в диалоговом окне) - вы можете заменить кнопку изображением следующим образом:
JQuery заменить с документами
источник
Чтобы отключить одну кнопку, при открытии диалога:
источник