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


JS при изменении значения поля


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

#1 TelecomMedia

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

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

Отправлено 13 Январь 2016 - 13:36

Подскажите, где можно подсмотреть js код, который при выборе параметра "А" в поле "Поле1" проверял значение полей "Поле2" и "Поле3" и если эти значения равны 0, то выводил предупреждение.

#2 CbCoder

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

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

Отправлено 13 Январь 2016 - 14:11

А в чем конкретно сложность? Не знаете как условие сформировать или как предупреждение вывести?

#3 TelecomMedia

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

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

Отправлено 13 Январь 2016 - 14:45

Условие. Предупреждение скорее всего примерно так: alert ("Предупреждение")

#4 CbCoder

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

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

Отправлено 13 Январь 2016 - 14:53

Условие: если (значение Поля1 равно "А" и значение Поля2 равно 0 и значение Поля3 равно 0) то alert

Откуда брать значения полей и как вешать функцию на изменение поля1, надеюсь уже в курсе. Это все есть в соответствующей теме.

#5 TelecomMedia

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

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

Отправлено 13 Январь 2016 - 15:31

Все сделал вроде как надо, но код не срабатывает.
Поместил его в поле 37810

if (document.getElementById("value37810").value=="Выполнено" && document.getElementById("value37770").value=="0" && document.getElementById("value37780").value=="0") { alert ("Укажите сроки!"); return false; }
else return true;


#6 TelecomMedia

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

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

Отправлено 13 Январь 2016 - 15:35

Исправил:

function onchange_{$one_field.id}()
{
if (document.getElementById("value37810").value=="Выполнено" && document.getElementById("value37770").value=="0" && document.getElementById("value37780").value=="0") { alert ("Укажите сроки!"); return false; }
else return true;
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});

Так предупреждение выпадает, но значение "Выполнено" тем не менее ставится. Можно как то сделать запрет на выбор этого значения пока не укажешь значения полей 37770 и 37780 отличными от нуля?

#7 CbCoder

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

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

Отправлено 13 Январь 2016 - 15:50

Насчет запрета сам не знаю. Можно пустую строку в поле размещать вместо "Выполнено".

#8 TelecomMedia

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

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

Отправлено 13 Январь 2016 - 16:03

А как так сделать? Точнее не пустое значение, а скажем "В работе"

#9 CbCoder

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

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

Отправлено 13 Январь 2016 - 16:18

document.getElementById("value37810").value = "В работе";

#10 TelecomMedia

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

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

Отправлено 13 Январь 2016 - 16:42

Что то я не понимаю)
Вместо document.getElementById("value37810").value=="Выполнено" написать document.getElementById("value37810").value = "В работе" ?

Или дополнительно куда то вписать?

Сообщение отредактировал fabrika-r: 13 Январь 2016 - 16:43


#11 CbCoder

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

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

Отправлено 13 Январь 2016 - 16:46

Зачем вам условие заменять на присвоение? :wacko: Присвоение должно стоять вместо return false разумеется, т.к. он все равно не работает. А else return true можно вообще выкинуть, т.к. он бессмыслен.

#12 TelecomMedia

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

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

Отправлено 13 Январь 2016 - 16:55

Спасибо)

Работает.

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

#13 CbCoder

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

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

Отправлено 13 Январь 2016 - 16:59

Значит надо "и" между полями заменить на "или". Тогда условие будет выполняться при хотя бы одном нуле, а не только обоих.

if (document.getElementById("value37810").value=="Выполнено" && (document.getElementById("value37770").value=="0" || document.getElementById("value37780").value=="0"))


#14 TelecomMedia

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

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

Отправлено 15 Январь 2016 - 15:50

Работает, спасибо.

Правильно ли я понимаю, что в табличном виде (когда разрешено редактирование в таблице) js код не работает?

#15 TelecomMedia

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

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

Отправлено 15 Январь 2016 - 16:26

И подскажите еще момент такой, если поле 33480 - поле связи (с полем 26784), то как правильно переписать данный код?:

if (document.getElementById("value33480").value=="") { alert ("Предупреждение"); return false; }


#16 CbCoder

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

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

Отправлено 15 Январь 2016 - 16:31

Просмотр сообщенияfabrika-r (15 Январь 2016 - 15:50) писал:

Правильно ли я понимаю, что в табличном виде (когда разрешено редактирование в таблице) js код не работает?

Да, не работает. Там вообще ограниченные возможности на данный момент.

Цитата

И подскажите еще момент такой, если поле 33480 - поле связи (с полем 26784), то как правильно переписать данный код?

Вместо текста должен быть id строки с данным значением, по идее.

#17 TelecomMedia

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

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

Отправлено 15 Январь 2016 - 16:35

Вместо какого текста? там же сейчас и так везде id полей указаны, а не их текстовые наименования

#18 CbCoder

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

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

Отправлено 15 Январь 2016 - 16:54

Во-первых, не полей, а строки. Во-вторых, вместо текста "Выполнено". Т.е. id строки из связанной таблицы, где лежит нужное значение.

#19 TelecomMedia

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

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

Отправлено 15 Январь 2016 - 17:04

Что то вы меня запутали))

#20 CbCoder

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

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

Отправлено 15 Январь 2016 - 17:18

А что именно непонятно то? Вы не в курсе, что такое "id строки"?





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

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