Показ/скрытие полей через JavaScript
#121
Отправлено 28 Декабрь 2013 - 21:30
Есть поле связи (ID 2370)
Если в поле связи (ID 2370) выбрано что то из списка, показывается поле (ID 1211)
Если в поле связи (ID 2370) ничего не выбрано поле (ID 1211) не показывается. Получилось сделать при редактировании, при сохранении поле (ID 1211) все равно видно, если поле связи (ID 2370) пустое.
Вот код:
Это в поле (ID 2370)
function onchange_{$one_field.id}()
{
//alert(document.getElementById('value{$one_field.id}').value);
display_field(1211, document.getElementById('value{$one_field.id}').value !="");
}
$('#value{$one_field.id}').bind('change', onchange_{$one_field.id});
Это в поле (ID 1211)
display_field({$one_field.id}, document.getElementById('value2370').value != "");
Что сделал не так или чего не хватает?
Заранее спасибо!
ps. НЕ программист...
#122
Отправлено 30 Декабрь 2013 - 09:06
Цитата
display_field({$one_field.id}, document.getElementById('value2370').value != "");
Эта инструкция выполняется раньше, чем появляется элемент 2370 на странице. Либо переместите ее в поле 2370, либо занесите внутрь ready функции (пример был выше).
#124
Отправлено 31 Декабрь 2013 - 09:14
function onchange_{$one_field.id}() { display_field(1211, document.getElementById('value{$one_field.id}').value !=""); } $('#value{$one_field.id}').bind('change', onchange_{$one_field.id}); $(document).ready(onchange_{$one_field.id});
Это слегка дополненный код для поля 2370 по примеру отсюда. В поле 1211 код удалите.
#125
Отправлено 31 Декабрь 2013 - 13:00
Прописал код в поле 2370, в поле 1211 удалил.
Открыл из таблицы одну из записей, поле 1211 видно, хотя в поле 2370 - пусто, т.е. ничего не выбрано. По логике поле 1211 должно быть скрыто.
Выбрал в поле 2370 некую запись, поле 1211 видно (т.е. как и должно быть, если в поле 2370 что то выбрано). Убрал в поле 2370 запись, поле 1211 скрылось. Нажал сохранить, поле 1211 опять стало видным.
Что то еще поправить вероятно надо?
#126
Отправлено 31 Декабрь 2013 - 13:29
$(document).ready(function(){ display_field(1211, document.getElementById('value{$one_field.id}').value !=""); }); function onchange_{$one_field.id}(){ display_field(1211, document.getElementById('value{$one_field.id}').value !=""); } $('#value{$one_field.id}').bind('change', onchange_{$one_field.id});
#127
Отправлено 02 Январь 2014 - 16:39
При загрузке страницы, видно поле 1211, хотя поле 2370 пустое.
При открытии на редактирование, при выбирании в поле 2370 какого то значение, поле 1211 видно. При выбирании в поле пустого значение, поле 1211 убирается, но при сохранении все равно видно.
#128
Отправлено 09 Январь 2014 - 10:18
#129
Отправлено 29 Апрель 2014 - 12:27
Нужно вычисление на скрытие полей по факту множественного выбора в списке:
Есть множественный список :
unction onchange_{$one_field.id}() { display_field(2181, document.getElementById("value6570['Договор-Заявка (РФ)']").checked); display_field(6590, document.getElementById("value6570['СНГ']").checked); display_field(6600, document.getElementById("value6570['Европа']").checked); display_field(6610, document.getElementById("value6570['Фито-Вет. служба']").checked); display_field(6620, document.getElementById("value6570['Диспозиция груза']").checked); // id1 и id2 - id тех полей, которые необходимо скрыть/отобразить, вместо них подставляете нужные вам номера } addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
В полях ставлю:
display_field(2181, document.getElementById("value6570['Договор-Заявка (РФ)']")); // свой код на каждое поле
Итого: поля просто скрылись и никак не регаруют на изменения в списке (
Хелп Пипл!
#130
Отправлено 29 Апрель 2014 - 13:27
#131
Отправлено 29 Апрель 2014 - 13:33
#132
Отправлено 29 Апрель 2014 - 14:31
В первом фрагменте:
display_field(2181, document.getElementById("value6570['Договор-Заявка (РФ)']").checked);
Во втором:
display_field(2181, document.getElementById("value6570['Договор-Заявка (РФ)']"));
Видим, что ".checked" куда-то пропало. Должно быть одинаково, естественно.
#133
Отправлено 30 Апрель 2014 - 06:45
#134
Отправлено 30 Апрель 2014 - 07:36
#135
Отправлено 30 Апрель 2014 - 08:09
#136
Отправлено 30 Апрель 2014 - 08:10
#137
Отправлено 15 Май 2014 - 00:48
display_field({$one_field.id},0); // Изначально закрываем поле, если необходимо document.getElementById("value3781").onchange=function () { var disp = 0; // Запрещаем открывать поле if ( (document.getElementById("value3781").value == "3") || (document.getElementById("value3781").value == "7") || ) { disp = 1; // разрешаем открыть поле } display_field({$one_field.id},disp); }
$one_field.id - это переменная, автоматически поставляет id поля, которое нужно скрыть. Код пишем в ячейке для JavaScript этого поля.
value3781 - это в данном случае поле со списком и поле связи, при выборе значений которого (3 и 7) открывается поле $one_field.id
Код применяется при создании новой записи. Пробовал то, что в документации - не получилось.
https://info.crm-master.info
#138
Отправлено 15 Май 2014 - 13:40
Tony999 (15 Май 2014 - 00:48) писал:
display_field({$one_field.id},0); // Изначально закрываем поле, если необходимо document.getElementById("value3781").onchange=function () { var disp = 0; // Запрещаем открывать поле if ( (document.getElementById("value3781").value == "3") || (document.getElementById("value3781").value == "7") || ) { disp = 1; // разрешаем открыть поле } display_field({$one_field.id},disp); }
$one_field.id - это переменная, автоматически поставляет id поля, которое нужно скрыть. Код пишем в ячейке для JavaScript этого поля.
value3781 - это в данном случае поле со списком и поле связи, при выборе значений которого (3 и 7) открывается поле $one_field.id
Код применяется при создании новой записи. Пробовал то, что в документации - не получилось.
obj = document.getElementById('value{$one_field.id}'); $(obj).bind('change', on_change_{$one_field.id}); function on_change_{$one_field.id}(){ var disp = !!($('#value3781').val()=='3' || $('#value3781').val()=='7'); display_field({$one_field.id},disp); }Кстати, зачем после второго условия if стоит || ?
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#139
Отправлено 15 Май 2014 - 18:30
andibrag (15 Май 2014 - 13:40) писал:
obj = document.getElementById('value{$one_field.id}'); $(obj).bind('change', on_change_{$one_field.id}); function on_change_{$one_field.id}(){ var disp = !!($('#value3781').val()=='3' || $('#value3781').val()=='7'); display_field({$one_field.id},disp); }Кстати, зачем после второго условия if стоит || ?
Это просто ошибка... там больше условий было.
Спасибо! Ваш код явно лучше!
https://info.crm-master.info
#140
Отправлено 26 Июнь 2014 - 22:22
Объясните на простом на трех полях.
Топология : название поля и вариант выбора из заготовленного списка.
(поле №570) Объект : Квартира ; Дом ; Участок
(поле №790) Комнат : 1 комната ; 2 комнаты, 3 комнаты
(поле №820) Площадь : (тут уже выбора нет, вписываем руками)
Задача : изначально поля КОМНАТ и ПЛОЩАДЬ скрыты, есть поле ОБЪЕКТ, и по нему выводить нужные поля.
Объект = Квартира. Вывести надо поле : Комнат и площадь.
Объект = Дом. Вывести надо поле : Комнат и площадь.
Объект = Участок Вывести надо поле : Площадь.
Желательно объяснить так : в поле №570 в JS вписать код (приложен код с комментариями) Спасибо.
Сообщение отредактировал Alexbalamyt: 26 Июнь 2014 - 22:24
Количество пользователей, читающих эту тему: 52
0 пользователей, 52 гостей, 0 анонимных