Правила отображения полей, очистить скрытые поля
Правила отображения полей, очистить скрытые поля
Добрый день,
В сущности имеются следующие поля:
1) Категория [334] (переключатели - глобальный список)
--Первая [441]
--Вторая [442]
--Третья [443]
2) Классификация1 [335] (выпадающий список - глобальный список)
----Значение 1 [451]
----Значение 2 [452]
3) Классификация2 [336] (выпадающий список - глобальный список)
----Значение 1 [461]
----Значение 2 [462]
4) Классификация3 [337] (выпадающий список -глобальный список)
----Значение 1 [471]
----Значение 2 [472]
5) Вес [511] (числовое поле)
6) Объем [512] (числовое поле)
Настроены правила отображения полей:
1) При выборе Первой категории [441] отображается поле Классификация1 [335], скрываются поля Классификация2 [336] и Классификация3 [337].
2) При выборе Второй категории [442] отображается поле Классификация2 [336], скрываются поля Классификация1 [335] и Классификация3 [337].
3) При выборе Третей категории [443] отображается поле Классификация3 [337], скрываются поля Классификация1 [335] и Классификация2 [336].
Далее в зависимости от выбора соответствующих значений в классификациях отображаются и скрываются другие поля Вес[511] , Объем[512] и т.д.
Проблема в том, что в форме добавления записи в сущность если выбрать Вторую категорию [442] и установить любое значение поля Классификация2 [336], а потом переключить на первую категорию[334] и установить любое значение из поля Классификация1 [335], в записи сохраняются оба установленных значения.
Подскажите, есть ли возможность сохранять скрытые поля пустыми? Т.е. чтобы при переключении категории, значения в скрытых полях сохранялись пустыми (чистыми).
В сущности имеются следующие поля:
1) Категория [334] (переключатели - глобальный список)
--Первая [441]
--Вторая [442]
--Третья [443]
2) Классификация1 [335] (выпадающий список - глобальный список)
----Значение 1 [451]
----Значение 2 [452]
3) Классификация2 [336] (выпадающий список - глобальный список)
----Значение 1 [461]
----Значение 2 [462]
4) Классификация3 [337] (выпадающий список -глобальный список)
----Значение 1 [471]
----Значение 2 [472]
5) Вес [511] (числовое поле)
6) Объем [512] (числовое поле)
Настроены правила отображения полей:
1) При выборе Первой категории [441] отображается поле Классификация1 [335], скрываются поля Классификация2 [336] и Классификация3 [337].
2) При выборе Второй категории [442] отображается поле Классификация2 [336], скрываются поля Классификация1 [335] и Классификация3 [337].
3) При выборе Третей категории [443] отображается поле Классификация3 [337], скрываются поля Классификация1 [335] и Классификация2 [336].
Далее в зависимости от выбора соответствующих значений в классификациях отображаются и скрываются другие поля Вес[511] , Объем[512] и т.д.
Проблема в том, что в форме добавления записи в сущность если выбрать Вторую категорию [442] и установить любое значение поля Классификация2 [336], а потом переключить на первую категорию[334] и установить любое значение из поля Классификация1 [335], в записи сохраняются оба установленных значения.
Подскажите, есть ли возможность сохранять скрытые поля пустыми? Т.е. чтобы при переключении категории, значения в скрытых полях сохранялись пустыми (чистыми).
Re: Правила отображения полей, очистить скрытые поля
Можно через Jquery назначать пустое значение, если поле скрыто.
Re: Правила отображения полей, очистить скрытые поля
Так выглядит часть html кода моего поля для классификации2
Пробую добавить JavaScript для очистки поля в настройках формы
Не работает.
Код: Выделить всё
<div class="form-group form-group-336 form-group-fieldtype_dropdown" style="display: block;">
<label class="col-md-3 control-label" for="fields_336">
<span class="required-label">*</span>Классификация2</label>
<div class="col-md-9">
<div id="fields_336_rendered_value">
<select name="fields[336]" id="fields_336" class="form-control input-large field_336 required chosen-select" data-placeholder="Выберите значение" style="display: none;">
<option value="">Выберите значение</option>
<option value="461">Значение 1</option>
<option value="462">Значение 2</option>
</select>
<div class="chosen-container chosen-container-single" title="" id="fields_336_chosen" style="width: 320px;">
<a class="chosen-single">
<input class="chosen-focus-input" type="text" autocomplete="off">
<span>Значение 2</span>
<div><b></b></div>
</a>
<div class="chosen-drop">
<div class="chosen-search">
<input class="chosen-search-input" type="text" autocomplete="off">
</div>
<ul class="chosen-results">
<li class="active-result" data-option-array-index="0">Выберите значение</li>
<li class="active-result" data-option-array-index="1">Значение 1</li>
<li class="active-result result-selected" data-option-array-index="2">Значение 2</li>
</ul>
</div>
</div>
<label id="fields_336-error" class="error" for="fields_336" style="display: none;"></label>
<script>
$("#fields_336").on("change", function(e) {
$("#fields_336-error").hide();
});
</script>
</div>
</div>
</div>Код: Выделить всё
$("#fields_335").on("change", function(e) {
$("#fields_336_chosen a.chosen-single span").html('');
}Re: Правила отображения полей, очистить скрытые поля
Нужно не выбор скрывать, а значение самого поля делать пустым через .val('')
Re: Правила отображения полей, очистить скрытые поля
Код: Выделить всё
$("#fields_335").on("change", function(e) {
$("#fields_336").val('');
});гуглил, испробовал разные варианты. 3-й день ломаю голову.
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Правила отображения полей, очистить скрытые поля
Для начал проверьте отрабатывает ли сама команда, например
Далее, Классификация1 - это выпадающий список а не поле ввода, то есть в самом списке должно присутствовать пустое значение, или это может быть какое то значение по умолчанию.
Код: Выделить всё
$("#fields_335").on("change", function(e) {
alert(1)
});Re: Правила отображения полей, очистить скрытые поля
Как вариант можно сделать поле заблокированным, тогда данные из нее не отправляются через форму.
Код: Выделить всё
.prop( "disabled", true )Re: Правила отображения полей, очистить скрытые поля
Спасибо большое, в итоге как то так реализовано:
Еще вопрос, как скрыть поля при выборе значения из поля многоуровневый список. Есть решение? Я в javascript не особо шарю. Как выглядит javascript код условия выбора значения из многоуровневого списка?
Код: Выделить всё
$("#uniform-feilds_334_441 span").on("change"), function(e) {
$("fields_335").prop( "disabled", false);
$("fields_336").prop( "disabled", true);
$("fields_337").prop( "disabled", true);
});
$("#uniform-feilds_334_442 span").on("change"), function(e) {
$("fields_335").prop( "disabled", true);
$("fields_336").prop( "disabled", false);
$("fields_337").prop( "disabled", true);
});
$("#uniform-feilds_334_443 span").on("change"), function(e) {
$("fields_335").prop( "disabled", true);
$("fields_336").prop( "disabled", true);
$("fields_337").prop( "disabled", false);
});