Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / HTML, JavaScript, VBScript, CSS Новый топик    Ответить
 java script выключение кнопки  [new]
neteurt
Member

Откуда:
Сообщений: 142
Здравствуйте
По чекбоксу и заполненному полю определяю, включать кнопку или выключать.
   document.querySelector(".ObligatoryField input").addEventListener('change', function (){
                 alert('qweqwe');
                        var checkBox = document.getElementsByName('sbc2')[0];
                        if (checkBox.checked == true) {
                         //  alert('qweqwe');
                             if  ((document.querySelector(".ObligatoryField input").value.length) !== 0) {
                               document.getElementById('cb1').disabled = false; }
                             else
                             {document.getElementById('cb1').disabled = false;}
                        }
                        else {
                         document.getElementById('cb1').disabled = false;
                        }
                    });

код в принципе работает, только возникла проблема в том, что при переходи с одной вкладки на другую он перестает работать

К сообщению приложен файл. Размер - 55Kb
25 окт 20, 16:11    [22220390]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 633
neteurt
при переходи с одной вкладки на другую он перестает работать

а переход на другую вкладку, это что? CSS, JS или другая страница грузится?
и вот это зачем 3 раза одно и тоже?
document.getElementById('cb1').disabled = false;


Сообщение было отредактировано: 25 окт 20, 19:04
25 окт 20, 19:07    [22220427]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
voraa
Member

Откуда:
Сообщений: 166
neteurt,
С точки зрения интерфейса подход неверный.
Нельзя делать кнопку disabled, что бы пользователь не мог ее нажимать, пока все данные не введет правильно. Особенно, когда данных много. Юзверь будет долго тупо рассматривать свои данные, что бы понять, что он не так делает, что бы ему наконец разрешили тыкнуть в кнопочку.
Кнопка должна быть тыкательной, но при тыке делать проверку правильности введения данных и выдавать сообщения о том, что он что то не ввел или ввел неправильно.
26 окт 20, 09:03    [22220548]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
voraa
С точки зрения интерфейса подход неверный.
Нельзя делать кнопку disabled, что бы пользователь не мог ее нажимать, пока все данные не введет правильно.
можно просто проверять правильность данных после ввода в каждое поле. а кнопку активировать после проверки последнего поля
26 окт 20, 10:17    [22220574]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
voraa
Member

Откуда:
Сообщений: 166
вадя,
Иногда можно, иногда - нет. Например, если просто не ввел обязательное поле.
Или, например, есть флажок - "оповестить по СМС". Я его нажимаю - мне тут же выскакивает сообщение, что я не ввел номер телефона. Конечно не ввел. Я сначала отметил флажок, потом собирался ввести номер. А мне сразу сообщение. Раздражает.
Интерфейс не должен раздражать навязчивостью, с другой стороны должен четко сообщать о том, где юзверь ошибся.

Сообщение было отредактировано: 26 окт 20, 13:07
26 окт 20, 13:12    [22220728]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
voraa
Или, например, есть флажок - "оповестить по СМС". Я его нажимаю - мне тут же выскакивает сообщение, что я не ввел номер телефона. Конечно не ввел. Я сначала отметил флажок, потом собирался ввести номер. А мне сразу сообщение. Раздражает.
тут бы сделать активным флажок только после ввода номера, или просто устанавливать фокус на поле ввода номера после простановки флажка.
проверка она бывает разная, может быть глупой, а может быть и приятной помощницей
26 окт 20, 13:50    [22220765]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
Алексей Роза
Member [заблокирован]

Откуда: РФ
Сообщений: 633
voraa
Интерфейс не должен раздражать навязчивостью, с другой стороны должен четко сообщать о том, где юзверь ошибся.

есть простое правило: там где выводится ошибка, рядом должно выводиться, КАК эту ошибку исправить

Сообщение было отредактировано: 26 окт 20, 13:55
26 окт 20, 14:00    [22220774]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
Алексей Роза
есть простое правило: там где выводится ошибка, рядом должно выводиться, КАК эту ошибку исправить
этот подход вызывает раздражение:
voraa
Я его нажимаю - мне тут же выскакивает сообщение, что я не ввел номер телефона.

а вот если вместо вывода сообщения просто установить фокус на поле ввода номера - всё становится приятно и удобно, и минимум действий.
26 окт 20, 14:20    [22220790]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
voraa
Member

Откуда:
Сообщений: 166
вадя
этот подход вызывает раздражение

Совсем нет. Весь вопрос, когда это делать. Когда человек, считает, что он все ввел и пытается отправить свой ввод - это одно. А если в процессе ввода - когда человек сам решает что и в какой последовательности ему вводить, а его постоянно дергают - введи то, теперь введи это - совсем другое дело.
вадя

а вот если вместо вывода сообщения просто установить фокус на поле ввода номера - всё становится приятно и удобно, и минимум действий.

Это тоже навязчивость. Человек не обязательно должен пользоваться мышью. Он может использовать клавиатуру, и ТАБами управлять фокусом. Если фокус будет сам по себе скакать - это сбивает с толку.

Сообщение было отредактировано: 26 окт 20, 14:37
26 окт 20, 14:37    [22220814]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
voraa
Это тоже навязчивость. Человек не обязательно должен пользоваться мышью. Он может использовать клавиатуру, и ТАБами управлять фокусом. Если фокус будет сам по себе скакать - это сбивает с толку.
опять таки мухи и котлеты в кучу. одно дело когда переход по табу - тогда порядок забит в коде.
другое - когда мышью кликнули по флажку, зачем дополнительно кликать по инпуту?
достаточно одного клика - и вводи номер.
ввод номера не означает обязательный клик по флажку, а вот наоборот - клик по флажку означает обязательный ввод номера, и освобождение юзера от дополнительного лишнего действия - есть хороший тон.
26 окт 20, 15:20    [22220855]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
voraa
Member

Откуда:
Сообщений: 166
вадя,
Не надо навязывать пользователю свой придуманный порядок действий.
Там могут быть несколько флажков (можно выбрать и оба)

- Информировать по СМС
- Информировать по e-mail
Потом поля ввода телефона и адреса.

Человеку может захотеться отметить сначала оба флажка, а потом ввести.
Человек может ошибочно отметить один из флажков, и не сможет тут же исправить, т.к фокус уже ушел с него.
26 окт 20, 16:14    [22220899]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 18326
voraa
Человеку может захотеться отметить сначала оба флажка, а потом ввести.
Человек может ошибочно отметить один из флажков, и не сможет тут же исправить, т.к фокус уже ушел с него.
и опять мухи котлеты в кучу.
все что может быть - требует конкретного решения и конкретной удобной визуализации.
мы же обсуждаем одну конкретную ситуацию
voraa
например, есть флажок - "оповестить по СМС". Я его нажимаю - мне тут же выскакивает сообщение, что я не ввел номер телефона. Конечно не ввел. Я сначала отметил флажок, потом собирался ввести номер. А мне сразу сообщение. Раздражает.


вы конкретную ситуацию/решение распространяете на все что может быть придумано,
ваш метод проведения обсуждения/дискуссии имеет место быть в реальности, но он не является движением к цели.
26 окт 20, 16:47    [22220916]     Ответить | Цитировать Сообщить модератору
 Re: java script выключение кнопки  [new]
voraa
Member

Откуда:
Сообщений: 166
вадя
voraa
Человеку может захотеться отметить сначала оба флажка, а потом ввести.
Человек может ошибочно отметить один из флажков, и не сможет тут же исправить, т.к фокус уже ушел с него.
и опять мухи котлеты в кучу.
все что может быть - требует конкретного решения и конкретной удобной визуализации.

Нет и еще раз нет. Решения должны быть стандартны, т.к. пользовательский интерфейс желательно должен быть стандартным. Пользователь привыкает к нему, и в каждом новом случае он ожидает, как будет работать интерфейс. Что будет, если он нажмет кнопку мыши, что будет, если он нажмет на ТАБ или Enter. Как выглядят меню, как вкладки, как выбирать пункты меню, как переходить на вкладки. Из предыдущего опыта он знает, что если он сфокусирован на флажке, то сколько бы раз он не нажал на пробел, флажок будет переключаться, но фокус останется на нем. И если фокус, вдруг, начнет упрыгивать, то это будет неприятным сюрпризом.
Ну это как из-за дизайнерских изысков на новой модели автомобиля поменять местами педали тормоза и газа. Ничего - привыкнут, зато как круто!
26 окт 20, 19:26    [22221017]     Ответить | Цитировать Сообщить модератору
Все форумы / HTML, JavaScript, VBScript, CSS Ответить