• Как с помощью события onchange select, заполнить сразу 3 input?

    @dmitryKovalskiy
    программист средней руки
    У вас все option с одинаковым значением value. Так, для справки. А теперь мой ключевой вопрос - а что происходит в событии onchange, которое вы тут не показали? Предположим у вас есть option:selected. А что вы оттуда берете? название? Или вы хотите на клиентской стороне по названию из ViewBag достать еще какие-то значения? У меня для вас плохие новости - так делать нельзя и на 99% я уверен что невозможно. Это серверный объект.
    Ответ написан
    6 комментариев
  • Как с помощью события onchange select, заполнить сразу 3 input?

    @PushMeNow
    .NET Developer
    Если я правильно вас понял вы не можете взять сразу три значения? Если да, то для вас есть несколько вариантов решений:
    1. в каждый тег option записывать три скрытых поля input, которые будут содержать эти значения:
    <option>Город <input type=hidden name="T_ext" value="..."><input type=hidden name="T_ht" value="..."><input type=hidden name="Z_ht" value="..."></option>

    При событии onchange вы просто смотрите какой элемент был выбран и берёте значения из скрытых полей.
    2. вариант через js массив. создаёте массив объектов и запихиваете в него все значения. далее у каждого option ставите value, который будет соответствовать элементу массива. ну и при событии onchange берёте value и по индексу вытаскиваете объект массива.
    Больше мог бы сказать, если бы вы предоставили своё событие onchange и те input поля, о которых идёт речь.
    Ответ написан
    2 комментария
  • Как с помощью события onchange select, заполнить сразу 3 input?

    @kttotto
    пофиг на чем писать
    На сервере
    <select id="select">
    	<option selected="selected">Выберите город</option>
    	@foreach (var b in ViewBag.cities)
    	{
    		<option value='@JsonConvert.SerializeObject(b)'>@b.Name</option>
    	}
    </select>

    На клиенте
    $('#select').change(function(){
    	var $val = $(this).find('option:selected').val();
    	if(!$val) return;
    	var obj = JSON.parse($val); // здесь js объект с вашими полями
    	// и здесь его можно обработать и заполнить свои инпуты
    	var t_ext = obj.T_ext;
    	var t_ht = obj.T_ht;
    	var z_ht = obj.Z_ht;
    
    	$('input#T_ext').val(t_ext);  // Добавил исходя из Ваших комментариев других ответов
    	$('input#Zht').val(t_ht);
    	$('input#Tht').val(z_ht);
    });
    Ответ написан
    6 комментариев