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


изменение поля и чтобы другое поле стало обязательным для заполнения


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

#21 ber

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

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

Отправлено 10 Февраль 2016 - 17:08

Получилось, вот он код:

function onchange_{$one_field.id}()
{
	    var val{$one_field.id} = $('#value{$one_field.id}').val();
	    switch( val{$one_field.id} )
	    {
			    case '0':
document.getElementById('main12730').value = 0;
					    break;
			    case '':
document.getElementById('main12730').value = 0;
					    break;
			    default:
document.getElementById('main12730').value = 1;
					    break;
	    }
}
$(function() {
	    onchange_{$one_field.id}();
	    $('#value{$one_field.id}').change(function() {
			    onchange_{$one_field.id}();
	    });
});

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 - Интернет-магазин запасных частей для грузовых авто

#22 CbCoder

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

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

Отправлено 10 Февраль 2016 - 17:37

Несколько мудрено, можно чуть сократить:

function onchange_{$one_field.id}()
{
    switch ($('#value{$one_field.id}').val())
    {
	    case '0':
	    case '':
		    document.getElementById('main12730').value = 0;
		    break;
	    default:
		    document.getElementById('main12730').value = 0;
		    break;
    }
}
$(onchange_{$one_field.id}); // назначаем функцию на событие загрузки страницы
$('#value{$one_field.id}').change(onchange_{$one_field.id}); // назначаем функцию на событие изменения поля

На работу не влияет, просто красивее как-то.

#23 ber

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

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

Отправлено 11 Февраль 2016 - 09:27

Просмотр сообщенияCbCoder (10 Февраль 2016 - 17:37) писал:

Несколько мудрено, можно чуть сократить:

На работу не влияет, просто красивее как-то.

Я правильно понимаю, что если использовать этот код для скрытия полей:

function onchange_{$one_field.id}()
{
		var val{$one_field.id} = $('#value{$one_field.id}').val();
		switch( val{$one_field.id} )
		{
				case '0':
display_field(12730, 0);
						break;
				case '':
display_field(12730, 0);
						break;
				default:
display_field(12730, 1);
						break;
		}
}
$(function() {
		onchange_{$one_field.id}();
		$('#value{$one_field.id}').change(function() {
				onchange_{$one_field.id}();
		});
});

То к каждому скрываемому полю уже можно не дописывать:

display_field({$one_field.id}, document.getElementById('value1831').value=="Да");

??

Сообщение отредактировал ber: 11 Февраль 2016 - 09:27

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 - Интернет-магазин запасных частей для грузовых авто

#24 CbCoder

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

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

Отправлено 11 Февраль 2016 - 09:40

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

По этой же причине кстати, сейчас не имеет принципиального значения в каком именно поле размещать js-код (если пользоваться вариантом с функциями).





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

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