Ряд выпадающих списков - желать получить данные только от одного.Как? - PullRequest
2 голосов
/ 20 марта 2012

У меня есть форма с различным количеством раскрывающихся списков, отображаемых с помощью HTML. Я хочу передать пользователю значение из одного из этих выпадающих списков - только одно значение. Как я могу это сделать? Это такая простая вещь, но я потратил на это часы.

<form id="form" name="form" method="post" action="nextStep.cshtml">
   <select name="1">
      <option value="1">1</option>
      <option value="2">2</option>
   </select>

   <select name="2">
      <option value="3">3</option>
      <option value="4">4</option>
   </select>

   <button type="submit">Submit</button>

А в nextStep.cshtml у меня есть:

var number = Request.form[//what can I do here?];

Имена выпадающих списков заполняются в цикле. Функциональность, которую я хочу иметь, заключается в том, чтобы пользователь мог выбрать значение из одного раскрывающегося списка, а все остальные - отключить. Затем я хочу иметь возможность извлечь только этот фрагмент данных в nextStep.cshtml.

Как я могу это сделать?

Ошибка в этом коде:

<script>
$(function(){
   $('#form select').change(function(){
      var thisDd = $(this);
      $('#myValueField').val(thisDd.val());
      $('#form select').each(function(i, e){
          if(thisDd.val() == ""){
            $(e).attr('enabled', 'enabled');
          } else{ 
          if(e==thisDd[0]) return; // not disable myself
          $(e).attr('disabled', 'disabled'); // disable other
        }
      });
   });
});
</script>

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Используя jQuery, вы можете сделать это (не проверено):

<hidden name="myValueField" id="myValueField">

// Submit the form after selection
$(function(){
   $('#form select').change(function(){
      $('#myValueField').val($(this).val());
      $('#form').submit();
   });
});

// or disable other dropdowns after selection
$(function(){
   $('#form select').change(function(){
      var thisDd = $(this);
      $('#myValueField').val(thisDd.val());
      $('#form select').each(function(i, e){
          if(e==thisDd[0]) return; // not disable myself
          $(e).attr('disabled', 'disabled'); // disable other
      });
   });
});
1 голос
/ 20 марта 2012

Есть много способов сделать это. Одним из способов было бы просто установить скрытый ввод, используя Javascript со значением, которое вы хотите обработать на сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...