Перейти к содержимому


JavaScript в доп. действии


Сообщений в теме: 19

#1 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 13 Декабрь 2011 - 16:02

Версия 194.
Подскажите, пожалуйста. В доп. действии есть поле для вставки кода JS. Если в полях назначение JS примерно понятно, то что можно сделать в доп. действиях при помощи JS? Приведите, если можно, примеры его использования. И когда этот код будет срабатывать?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Декабрь 2011 - 16:33

JS в доп. действиях срабатывает непосредственно при нажатии на кнопку доп.действия. Примеры использования: проверять значения тех или иных полей и в случае необходимости отменять нажатие через команду return false; выводить сообщение через alert или запрос через confirm с тем же return false при нажатии на кнопку Отмена.

#3 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 13 Декабрь 2011 - 16:48

Просмотр сообщенияРазработчик (13 Декабрь 2011 - 16:33) писал:

JS в доп. действиях срабатывает непосредственно при нажатии на кнопку доп.действия. Примеры использования: проверять значения тех или иных полей и в случае необходимости отменять нажатие через команду return false; выводить сообщение через alert или запрос через confirm с тем же return false при нажатии на кнопку Отмена.
т.е. сначала срабатывает JS, а потом РНР?

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 13 Декабрь 2011 - 16:50

Просмотр сообщенияarsenal (13 Декабрь 2011 - 16:48) писал:

т.е. сначала срабатывает JS, а потом РНР?
Да, разумеется. JS срабатывает до перезагрузки страницы.

Собственно для того и добавили поле JS, чтобы можно было отменить доп. действие до выполнения кода PHP.

#5 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 16 Декабрь 2011 - 09:32

А как в JS в доп. действии определить, сколько выделено строк? И можно ли через JS как-то убирать сообщение "Операция будет выполнена над ВСЕМИ строками ...."?

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 16 Декабрь 2011 - 09:45

То что я писал выше, касается режима просмотра записи, а не таблицы. JS работает только при нажатии кнопки в этом режиме. Вариант с таблицей мы пока не предусматривали. В этом случае придется отдельный код писать.

#7 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 21 Декабрь 2011 - 13:22

Просмотр сообщенияarsenal (16 Декабрь 2011 - 09:32) писал:

И можно ли через JS как-то убирать сообщение "Операция будет выполнена над ВСЕМИ строками ...."?
Или вместо него выводить другое сообщение

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Декабрь 2011 - 13:29

Я же написал, что нет. JS не работает в режиме таблицы, соответственно надпись вы им никак не уберете.

#9 bryukhov

    Активный участник

  • Пользователи
  • PipPipPip
  • 317 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 21 Декабрь 2011 - 13:58

Как сделать вывод сообщения, предупреждение о дополнительном действии, что пользователь мог подтвердить его выполнение

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Декабрь 2011 - 14:20

if (!confirm('Выполнить это действие?')) return false;

Сообщение отредактировал Разработчик: 07 Февраль 2012 - 10:28
неверный код, см. ниже


#11 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Февраль 2012 - 10:02

Вставляю в JS доп.действия вышеприведенный код - доп. действие вообще не срабатывает.
Оставляю только сообщение
confirm('Выполнить это действие?');
доп.действие тоже не работает. Комментирую код JS - результат тот же. Вообще убираю JS - доп.действие работает.

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Февраль 2012 - 10:26

if (confirm('Выполнить это действие?')) return true; else return false;


#13 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Февраль 2012 - 11:13

Почему не работает код
if (document.getElementById('value929').value=="аннулирован") return true; else return false;


#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Февраль 2012 - 11:28

Что значит не работает? Выдает ошибку или просто false? Во втором случае очевидно что 'value929' не равно "аннулирован". Тестируйте код через вывод значений.

#15 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Февраль 2012 - 12:49

Смотрел через консоль ошибок, показывает
document.getElementById('value929').value is null
хотя значение в нем записано. Пробовал с другими полями - условие проверяется нормально. Смотрел по настройкам полей, никаких закономерностей не обнаружил. Почему значение может выдавать NULL ?

#16 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Февраль 2012 - 14:20

Поле доступно в режиме редактирования? Или только для просмотра?

"NULL" выдает когда элемент отсутствует вообще.

#17 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Февраль 2012 - 15:34

Доступно только при просмотре. Если ставлю "редактирование", то все работает. Но мне нужно, чтобы данное поле было только на просмотр. Что можно придумать?

#18 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Февраль 2012 - 15:39

Включите права на редактирование и скройте поле через яваскрипт. Тогда прямо редактировать его будет нельзя, но доступ к элементу появится.

#19 arsenal

    Активный участник

  • Пользователи
  • PipPipPip
  • 448 сообщений

Отправлено 07 Февраль 2012 - 16:02

Просмотр сообщенияРазработчик (07 Февраль 2012 - 15:39) писал:

Включите права на редактирование и скройте поле через яваскрипт.
Но тогда поле и на просмотр скроется

#20 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 07 Февраль 2012 - 16:14

Скрывайте поле только в режиме редактирования:

document.getElementById('field_edit929').style.display = 'none';

Сообщение отредактировал Разработчик: 07 Февраль 2012 - 16:17
поправил код






Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных