Показ/скрытие полей через JavaScript
#41
Отправлено 31 Январь 2012 - 09:04
#42
Отправлено 31 Январь 2012 - 09:44
Разработчик (31 Январь 2012 - 09:04) писал:
Если в условии ставить проверку сразу нескольких полей, то условие не срабатывает, хотя если разделить проверку условия на отдельные поля и каждую проверку поставить в "свое" поле, то по отдельности они работают. А если их собрать в одном условии IF и разместить в одном из полей - то не работают.
Если эти условия ставить в функцию, которая срабатывает при каком-то событии, то все работает. А вот в режиме просмотра - нет.
В версии 194 это работало.
#43
Отправлено 31 Январь 2012 - 10:02
#44
Отправлено 16 Март 2012 - 15:25
shambler81 (28 Ноябрь 2011 - 20:25) писал:
Руки дошли.
Разработчик (04 Август 2011 - 14:46) писал:
Алгоритм присвоения события для поля связи уже был описан ранее в другой теме: http://clientbase.ru...?showtopic=2600 . Если вкратце, необходимо применять присвоение события через функцию jQuery, а не через addHandler:
function onchange_{$one_field.id}() { // ваша функция } $('#value{$one_field.id}').bind('change', onchange_{$one_field.id});
Разработчик (08 Август 2011 - 12:11) писал:
Добавили в множественный выбор (в полях с типом список, пользователь и группа) генерацию события на изменение. Теперь событие срабатывает, а для присвоения ему функции необходимо использовать ту же конструкцию что и для полей связи выше.
#45
Отправлено 06 Апрель 2012 - 02:39
КОД В ПОЛЕ СО СПИСКОМ
function onchange_{$one_field.id}()
{
display_field(2777, 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=="утеряно");
display_field(2773, 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=="утеряно");
display_field(2774, 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=="утеряно");
display_field(2775, document.getElementById('value{$one_field.id}').value=="получен ответ" || document.getElementById('value{$one_field.id}').value=="зависло" || document.getElementById('value{$one_field.id}').value=="утеряно");
display_field(2778, document.getElementById('value{$one_field.id}').value=="получен ответ" || document.getElementById('value{$one_field.id}').value=="зависло" || document.getElementById('value{$one_field.id}').value=="утеряно");
// id1 и id2 - id тех полей, которые необходимо скрыть/отобразить, вместо них подставляете нужные вам номера
}
addHandler(document.getElementById('value{$one_field.id}'), 'onchange', onchange_{$one_field.id});
КОД В ПОЛЯ:
display_field({$one_field.id}, document.getElementById('value2779').value=="отправлено" || {$one_field.id}, document.getElementById('value2779').value=="доставлено" || {$one_field.id}, document.getElementById('value2779').value=="получен ответ" || {$one_field.id}, document.getElementById('value2779').value=="зависло" || {$one_field.id}, document.getElementById('value2779').value=="утеряно");
// ID заменяете на реальный id поля "список"
display_field({$one_field.id}, document.getElementById('value2779').value=="доставлено" || {$one_field.id}, document.getElementById('value2779').value=="получен ответ" || {$one_field.id}, document.getElementById('value2779').value=="зависло" || {$one_field.id}, document.getElementById('value2779').value=="утеряно");
// ID заменяете на реальный id поля "список"
display_field({$one_field.id}, document.getElementById('value2779').value=="получен ответ" || {$one_field.id}, document.getElementById('value2779').value=="зависло" || {$one_field.id}, document.getElementById('value2779').value=="утеряно");
// ID заменяете на реальный id поля "список"
#46 Гость_Roman_*
Отправлено 06 Апрель 2012 - 07:52
#47
Отправлено 07 Июнь 2012 - 16:42
#48
Отправлено 07 Июнь 2012 - 17:17
#49
Отправлено 07 Сентябрь 2012 - 22:22
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#50
Отправлено 10 Сентябрь 2012 - 15:51
#51
Отправлено 08 Ноябрь 2012 - 00:14
CbCoder (07 Июнь 2012 - 17:17) писал:
в списке с множественным выбором
function onchange_{$one_field.id}() { display_field(194, document.getElementById('value193').value == 'Расчеты'); } $('#value{$one_field.id}').bind('change', onchange_{$one_field.id});
в отображаемом/скрываемом поле
display_field(194, document.getElementById('value193').value == 'Расчеты');
в результате поле 194 всегда скрыто, при установке галочки в строке 'Расчеты' ничего не происходит
#52
Отправлено 08 Ноябрь 2012 - 10:01
В дальнейшем вероятно исправим данную ситуацию.
#53
Отправлено 17 Ноябрь 2012 - 16:55
CbCoder (08 Ноябрь 2012 - 10:01) писал:
Исправили. Теперь пример выше необходимо записать так:
function onchange_{$one_field.id}() { display_field(194, document.getElementById("value193['Расчеты']").checked); } $('#value{$one_field.id}').bind('change', onchange_{$one_field.id});
#54
Отправлено 19 Ноябрь 2012 - 07:48
#55
Отправлено 11 Декабрь 2012 - 21:07
else if(document.getElementById('value1451').value!=="" && (document.getElementById('value{$user['id']}').value=="1")"если текущий пользователь 1"
то
display_field(1432, 1);
Сообщение отредактировал Oleg_: 12 Декабрь 2012 - 00:48
#56
Отправлено 12 Декабрь 2012 - 09:30
Например:
if (document.getElementById('value111').value=={$user.id}) display_field(1432, 1);
111 - id поля "пользователь"
#57
Отправлено 12 Декабрь 2012 - 14:43
#58
Отправлено 12 Декабрь 2012 - 22:29
if (document.getElementById('value111').value=={$user.id}) display_field(1432, 1);если я правильно понял, показывает поле если текущий пользователь является создателем записи.
А мне надо, что бы поле показывалось определенному пользователю, даже если запись ему не принадлежит.
Как то так должно быть
если ('value{текущий пользователь}')=="1")
то поле показать
если нет
то не показывать
Сообщение отредактировал Oleg_: 12 Декабрь 2012 - 22:30
#59
Отправлено 13 Декабрь 2012 - 09:27
#60
Отправлено 13 Декабрь 2012 - 09:35
Oleg_ (12 Декабрь 2012 - 22:29) писал:
Неправильно поняли. Показывает, если поле с id = 111 равно текущему пользователю.
Oleg_ (12 Декабрь 2012 - 22:29) писал:
Тогда см. код выше от nk. Ваш первоначальный вариант в любом случае неверный.
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных