Показ/скрытие полей через JavaScript
#141
Отправлено 27 Июнь 2014 - 10:41
#142
Отправлено 27 Июнь 2014 - 13:54
Другой вопрос, выводить поле по условиям 2-х полей можно ?
(поле №1370) Цель : арендовать (дл) ; арендовать (сут) ; покупка
(поле №1450) Объект : квартира, офис
(поле №1490) Кто будет жить : семья, семья+ребенок. (его надо выводить при условии Арендовать и Квартира)
Делаю проверку в поле Объект, (весь код ниже написан в поле Объект) сразу по объекту и цели, как-то не работает.
function onchange_{$one_field.id}() { display_field ((1490, document.getElementById('value{$one_field.id}').value=="Квартира" || document.getElementById('value{$one_field.id}').value=="Дом")) \\ вывести поле 1490 если в Объекте выбрано Квартира или Дом && ((1460, document.getElementById('value1370').value=="Арендовать (дл)" (1460, document.getElementById('value1370').value=="Арендовать (сут)); \\ и вывести поле 1490 если в Цели выбрано Аренда дл или Аренда посут. display_field(1470, document.getElementById('value{$one_field.id}').value=="Офис" || document.getElementById('value{$one_field.id}').value=="Склад"); \\ вывести поле 1470 (площадь) если в объекте выбрано Офис или Склад. } addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
Подскажите что не так ? Поля на которые ссылаюсь, в них вообще кода НЕТ. Без условия "И" оно работает. Может где-то в другом месте проверку делать ?
Сообщение отредактировал CbCoder: 27 Июнь 2014 - 14:55
#143
Отправлено 27 Июнь 2014 - 14:57
Пример с исправлением вышеперечисленных ошибок:
function onchange_{$one_field.id}() { display_field(1490, \\ вывести поле 1490 ((document.getElementById('value{$one_field.id}').value=="Квартира" || document.getElementById('value{$one_field.id}').value=="Дом") \\ если в Объекте выбрано Квартира или Дом && (document.getElementById('value1370').value=="Арендовать (дл)" || document.getElementById('value1370').value=="Арендовать (сут)")); \\ и если в Цели выбрано Аренда дл или Аренда посут. display_field(1470, document.getElementById('value{$one_field.id}').value=="Офис" || document.getElementById('value{$one_field.id}').value=="Склад"); \\ вывести поле 1470 если в объекте выбрано Офис или Склад. } addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
#144
Отправлено 27 Июнь 2014 - 21:17
Теперь возникла проблема : все поля которые должны появляться\скрываться от выбора. Они все в начале открыты (как только сделали Добавить запись, еще ничего не выбирали)
Можно их как-то убрать и вызывать только по запросу ?
Простой код скрытия перед основным выражением условий показа, результата не дает.
Простой код скрытия
display_field(1460, 0); // отключаем видимость поля кол-во комнат
display_field(1470, 0); // отключаем видимсоть поля площадь
display_field(1490, 0); // отключаем видимость поля кто будет жить
Сообщение отредактировал Alexbalamyt: 27 Июнь 2014 - 21:35
#145
Отправлено 28 Июнь 2014 - 13:47
$(onchange_{$one_field.id});
Добавьте эту строку в конец кода.
#146
Отправлено 28 Июнь 2014 - 13:57
Цитата
display_field(1460, 0); // отключаем видимость поля кол-во комнат
display_field(1470, 0); // отключаем видимсоть поля площадь
display_field(1490, 0); // отключаем видимость поля кто будет жить
Во-первых, этот код будет актуален только в случае новой записи (т.к. скрывает всё в любом случае), а для уже заполненных записей с выбранным объектом, приведет к тому, что поля скроются также все, хотя в этом случае часть или все поля должны быть показаны в зависимости от значения в поле Объект. Т.е. должна быть такая же проверка как при непосредственно выборе объекта, а у вас это не учитано (в моем же примере запускается та же самая функция на проверку). Во-вторых, данные команды должны быть вызваны уже после загрузки страницы, для чего и служит jQuery-команда $(имя функции), а простая вставка может и не сработать (т.к. сами поля могут быть еще не загружены в момент работы скрипта).
#147
Отправлено 30 Июнь 2014 - 14:24
if ((document.getElementById("value10241").value != "" or document.getElementById("value10241").value != "Базовый прайс")) { alert ("КП уже отправлено!"); return false; } else return true;
Без условия "or" все работает корректно
#149
Отправлено 02 Июль 2014 - 13:28
прочитал ветку, ответа не нашел.
Есть ли возможность скрывать/показывать название группы?
#151
Отправлено 02 Июль 2014 - 14:07
Но я спросил как скрыть/показать именно название группы, а не саму группу...
#152
Отправлено 02 Июль 2014 - 14:14
GoGPS (02 Июль 2014 - 14:07) писал:
Да, это мой любимый вариант ответа.
GoGPS (02 Июль 2014 - 14:07) писал:
Отдельной функции для этого нет, используйте стандартное скрытие через display="none" элемента. Id элемента можно в исходном коде страницы посмотреть.
Правда, не совсем понимаю, в чем практический смысл данного действия.
#153
Отправлено 02 Июль 2014 - 14:33
CbCoder (02 Июль 2014 - 14:14) писал:
#154
Отправлено 02 Июль 2014 - 14:52
CbCoder (02 Июль 2014 - 14:14) писал:
А как правильно написать код если ид группы: 450
Заранее спасибо!
Сообщение отредактировал GoGPS: 02 Июль 2014 - 14:52
#156
Отправлено 02 Июль 2014 - 15:11
GoGPS (02 Июль 2014 - 14:33) писал:
Так скрывайте группу целиком через display_fgroup, в чем проблема тогда? Если поля все равно не видны, разницы никакой нет между этими действиями.
#158
Отправлено 02 Июль 2014 - 15:32
#159
Отправлено 02 Июль 2014 - 15:35
При нажатии на "Добавить запись" открывается страница в которой все поля в группах скрыты, но сами заголовки групп видны, что не очень гуд...
Скрин прилагаю:
часть кода:
function onchange_{$one_field.id}()
{
display_fgroup(450, document.getElementById('value{$one_field.id}').value=="Оборудование"
|| document.getElementById('value{$one_field.id}').value=="Проблема"
|| document.getElementById('value{$one_field.id}').value=="Встреча"
|| document.getElementById('value{$one_field.id}').value=="Выставить счет"
|| document.getElementById('value{$one_field.id}').value=="Предложение");
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
Не исключаю что накосячено в коде...
Сообщение отредактировал GoGPS: 02 Июль 2014 - 15:43
#160
Отправлено 02 Июль 2014 - 17:35
Количество пользователей, читающих эту тему: 28
0 пользователей, 28 гостей, 0 анонимных