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


Показ/скрытие полей через JavaScript


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

#321 z3dom

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

  • Пользователи
  • PipPipPip
  • 34 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 23 Сентябрь 2019 - 17:56

Подниму тему:
два поля: f15371 и f15381
Для начала надо сделать, чтобы поле f15381 появлялось, только когда f15371="Партнер".

Использую такой код:

function onchange_{$one_field.id}()
{
display_field(15381, $('#value{$one_field.id}').val()=="партнер");
}
$(document).ready(onchange_{$one_field.id});
$('#value{$one_field.id}').change(onchange_{$one_field.id});

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

Возможно ли это? Какие изменения внести в код? (тему перечитал всю целиком, решения не нашел)

#322 CbCoder

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

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

Отправлено 26 Сентябрь 2019 - 10:00

Возможность быстрого редактирования в режиме просмотра записи появилась относительно недавно, поэтому в теме пока ничего нет. Для данной задачи вам необходимо добавить следующий код:

function onchange_view_{$one_field.id}()
{
    display_field(15381, $('#view_cell_{$one_field.id}').val()=="партнер");
}
$('#view_cell_{$one_field.id}').change(onchange_view_{$one_field.id});

Т.е. в итоге должно получиться:

// код для режима стандартного редактирования
function onchange_{$one_field.id}()
{
    display_field(15381, $('#value{$one_field.id}').val()=="партнер");
}
$(document).ready(onchange_{$one_field.id});
$('#value{$one_field.id}').change(onchange_{$one_field.id});

// код для быстрого редактирования в режиме просмотра
function onchange_view_{$one_field.id}()
{
    display_field(15381, $('#view_cell_{$one_field.id}').val()=="партнер");
}
$('#view_cell_{$one_field.id}').change(onchange_view_{$one_field.id});


#323 z3dom

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

  • Пользователи
  • PipPipPip
  • 34 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Сентябрь 2019 - 11:45

Просмотр сообщенияCbCoder (26 Сентябрь 2019 - 10:00) писал:

Т.е. в итоге должно получиться:

Спасибо! Действительно работает!

#324 z3dom

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

  • Пользователи
  • PipPipPip
  • 34 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Сентябрь 2019 - 12:02

Изначально хотел, чтобы появляющееся поле еще и становилось бы обязательным. Добавил строчку document.getElementById('main15381').value = 1; но ничего не происходит... Может работа с обязательностью заполнения полей тоже теперь происходит как-то по новому?
// код для режима стандартного редактирования
function onchange_{$one_field.id}()
{
	document.getElementById('main15381').value = 1;
	display_field(15381, $('#value{$one_field.id}').val()=="партнер");
  
  
}
$(document).ready(onchange_{$one_field.id});
$('#value{$one_field.id}').change(onchange_{$one_field.id});
// код для быстрого редактирования в режиме просмотра
function onchange_view_{$one_field.id}()
{
	document.getElementById('main15381').value = 1;
	display_field(15381, $('#view_cell_{$one_field.id}').val()=="партнер");
}
$('#view_cell_{$one_field.id}').change(onchange_view_{$one_field.id});

P.S. я понимаю, что там еще надо проверку условия дописать, но в данном варианте поле должно просто стать обязательным. А этого не происходит...

Сообщение отредактировал z3dom: 26 Сентябрь 2019 - 12:42


#325 CbCoder

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

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

Отправлено 26 Сентябрь 2019 - 14:21

У меня тоже не сработало изменение элемента main. Возможно сейчас обязательность как то по другому задается, я сам не в курсе, т.к. не отвечаю за это направление. Попробуйте отправить заявку в техподдержку с вопросом насчет этого, его перенаправят соответствующему специалисту. Потом можете отписаться здесь, чтобы все были в курсе.

#326 z3dom

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

  • Пользователи
  • PipPipPip
  • 34 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 04 Октябрь 2019 - 13:26

Просмотр сообщенияCbCoder (26 Сентябрь 2019 - 14:21) писал:

У меня тоже не сработало изменение элемента main. Возможно сейчас обязательность как то по другому задается, я сам не в курсе, т.к. не отвечаю за это направление. Попробуйте отправить заявку в техподдержку с вопросом насчет этого, его перенаправят соответствующему специалисту. Потом можете отписаться здесь, чтобы все были в курсе.

Официальный ответ, что "js не позволяет менять "обязательность" поля." Ну и дана рекомендация заполнять скрытое поле каким-либо "нулевым" значением.

#327 CbCoder

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

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

Отправлено 04 Октябрь 2019 - 18:12

Просмотр сообщенияz3dom (04 Октябрь 2019 - 13:26) писал:

Официальный ответ, что "js не позволяет менять "обязательность" поля." Ну и дана рекомендация заполнять скрытое поле каким-либо "нулевым" значением.

Хм, но раньше же работало. Возможно, возросла сложность реализации, поэтому через JS в полях невозможно стало самостоятельно задать.

#328 z3dom

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

  • Пользователи
  • PipPipPip
  • 34 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 11 Октябрь 2019 - 17:48

Просмотр сообщенияCbCoder (04 Октябрь 2019 - 18:12) писал:

Хм, но раньше же работало. Возможно, возросла сложность реализации, поэтому через JS в полях невозможно стало самостоятельно задать.
Возможно, а возможно, что дело в другом. Например в текущий момент программисты не успевают детально разобраться в вопросе, чтобы дать абсолютно точный ответ, поэтому отправляют по простому пути.

#329 ber

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

  • Пользователи
  • PipPipPip
  • 237 сообщений
  • Пол:Мужчина
  • Город:Москва

Отправлено 23 Январь 2020 - 14:18

Не появилось подробностей по обязательности поля через js?
www.its-truck.ru - Группа компаний ИТС
www.intertransservice.ru - ИТС-МАН - Официальный дилер MAN Truck and Bus
www.its-daf.ru - ИТС-ДАФ - Официальный дилер DAF Trucks
www.its-hino.ru - ИТС-Хино - Официальный дилер Hino Motors
www.its-kamaz.ru - ИТС-Камаз - Официальный дилер ПАО КамАЗ
www.trp-parts.ru - Интернет-магазин запасных частей для грузовых авто

#330 maksbazhin

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

  • Пользователи
  • PipPipPip
  • 62 сообщений
  • Пол:Мужчина

Отправлено 26 Январь 2020 - 10:29

Цитата

function onchange_{$one_field.id}() // имя функции может быть любым, необязательно "onchange_{$one_field.id}", главное чтобы не повторялось в других местах
{
  // любой нужный вам js-код
}
$(document).ready(onchange_{$one_field.id}); // запускаем функцию при событии загрузки страницы (т.о. нужные поля могут сразу скрываться)
$('#value{$one_field.id}').change(onchange_{$one_field.id}); // запускаем ту же самую функцию при событии изменения поля
Ни в какую не срабатывает на поле связи, меняю тип поля (текст, список, пользователи) все ок.
Помогите пожалуйста.

#331 CbCoder

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

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

Отправлено 30 Январь 2020 - 11:02

Скорее всего причина в том, что поменялся дизайн поля связи в текущей версии, соответственно старый код не работает. Аналогично предыдущему ответу могу посоветовать только отправить заявку в ТП для получения инструкций от соответствующего специалиста. Ну или чтобы починили старый вариант.

#332 plotnikov

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

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

Отправлено 04 Апрель 2020 - 17:40

Просмотр сообщенияz3dom (04 Октябрь 2019 - 13:26) писал:

Официальный ответ, что "js не позволяет менять "обязательность" поля." Ну и дана рекомендация заполнять скрытое поле каким-либо "нулевым" значением.
только сейчас увидел, что это не работает, какой кошмар - сделал функцию, надеешься, что она работает как надо (занимаешься другими делами), а потом выясняется, что... просто не будет работать больше.

#333 GoGPS

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

  • Пользователи
  • PipPipPip
  • 159 сообщений
  • Пол:Мужчина

Отправлено 27 Апрель 2020 - 21:45

Здравствуйте,

Совершенно случайно обнаружил что перестал срабатывать JS. Похоже от версии к версии и от ревизии к ревизии произошло немало изменений :)

Привожу старый JS который работал энное время назад

function onchange_{$one_field.id}()
{
var val4430 = $('#value4430').val();
switch( val4430 )
{
case '36':
display_field(4440, 1);
display_field(4450, 1);
display_field(9740, 0);
$("#value9740").val('');
break;
case '37':
display_field(4440, 0);
$("#value4440").val('');
display_field(4450, 0);
$("#value4450").val('');
display_field(9740, 1);
break;
default:
display_field(4440, 0);
$("#value4440").val('');
display_field(4450, 0);
$("#value4450").val('');
display_field(9740, 0);
$("#value9740").val('');
break;
}
}
$(function() {
onchange_{$one_field.id}();
$('#value{$one_field.id}').change(function() {
onchange_{$one_field.id}();
});
});

Укажите плс что не так.

Заранее спасибо!

p.s. 4430 - поле связи

#334 Timur

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

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 865 сообщений
  • Пол:Мужчина

Отправлено 07 Май 2020 - 16:33

Просмотр сообщенияGoGPS (27 Апрель 2020 - 21:45) писал:

Здравствуйте,

Совершенно случайно обнаружил что перестал срабатывать JS. Похоже от версии к версии и от ревизии к ревизии произошло немало изменений :)

Привожу старый JS который работал энное время назад

function onchange_{$one_field.id}()
{
var val4430 = $('#value4430').val();
switch( val4430 )
{
case '36':
display_field(4440, 1);
display_field(4450, 1);
display_field(9740, 0);
$("#value9740").val('');
break;
case '37':
display_field(4440, 0);
$("#value4440").val('');
display_field(4450, 0);
$("#value4450").val('');
display_field(9740, 1);
break;
default:
display_field(4440, 0);
$("#value4440").val('');
display_field(4450, 0);
$("#value4450").val('');
display_field(9740, 0);
$("#value9740").val('');
break;
}
}
$(function() {
onchange_{$one_field.id}();
$('#value{$one_field.id}').change(function() {
onchange_{$one_field.id}();
});
});

Укажите плс что не так.

Заранее спасибо!

p.s. 4430 - поле связи

Добрый день.
Для решения указанной проблемы, прошу обратиться с данным вопросом с заявкой в ТП, если вы не делали это ранее.
Спасибо.





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

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