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


JS вопрос


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

#1 TelecomMedia

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

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

Отправлено 26 Май 2014 - 16:56

Подскажите пожалуйста как должен правильно выглядеть код JS если я хочу, чтобы при выборе в поле 15191 значений либо ААА либо ВВВ, открывать соответсвующее поле (14891).

Поле для выбора значений
:
function onchange_{$one_field.id}()
{
  display_field(14891, document.getElementById('value{$one_field.id}').value=="AAA");
   display_field(14891, document.getElementById('value{$one_field.id}').value=="BBB");
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});


Поле, которое нужно отобразить:

display_field({$one_field.id}, document.getElementById('value15191').value=="AAA" or document.getElementById('value15191').value=="BBB"  );


Данный код всегда отображает поле.

#2 CbCoder

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

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

Отправлено 26 Май 2014 - 17:17

Цитата

Данный код всегда отображает поле.

Не понял этот пункт. Если в поле только 2 значения (либо ААА либо ВВВ), то естественно что всегда будет отображать.

Что касается первого кода, по выбору значения, то там нужно сделать точно также два условия в одной строке через or, как втором коде. Оба кода должны быть идентичны в этом плане.

#3 TelecomMedia

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

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

Отправлено 27 Май 2014 - 07:42

Переписал верхний код:

function onchange_{$one_field.id}()
{
display_field(14891, document.getElementById('value{$one_field.id}').value=="ААА" or document.getElementById('value{$one_field.id}').value=="ВВВ");
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});


В поле 15191 несколько значений:
ААА
БББ
ВВВ
ГГГ

Нужно, чтобы только при выборе ААА или ВВВ отображалось поле 14891. Сейчас же оно отображается по умолчанию при добавлении записи, неважно выбраны эти значения или нет.

#4 CbCoder

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

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

Отправлено 27 Май 2014 - 09:09

Цитата

Переписал верхний код

Так заработало или нет в итоге, после изменения?


Цитата

В поле 15191 несколько значений:
ААА
БББ
ВВВ
ГГГ

Нужно, чтобы только при выборе ААА или ВВВ отображалось поле 14891. Сейчас же оно отображается по умолчанию при добавлении записи, неважно выбраны эти значения или нет.

Судя по вашему коду, такого быть не должно, условие явно показывает, что отображаться должно только при AAA или ВВВ. Иначе в условии будет false и поле будет скрыто.

Попробуйте что ли тогда так записать:

if (document.getElementById('value15191').value=="AAA" or document.getElementById('value15191').value=="BBB") display_field({$one_field.id}, 1); else display_field({$one_field.id}, 0);

Но скорее всего у вас где-то банальная опечатка в коде.

#5 TelecomMedia

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

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

Отправлено 27 Май 2014 - 09:39

Попробовал, поле все равно отображается при любом условии.

Код перепроверил, ошибок вроде как нет.

Напишу в тех. поддержку, спасибо.





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

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