2012-03-20 25 views
2

我有不同數量的與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> 
+0

所以,你有一堆作爲一個單一的一個有效運作的下拉列表中的?爲什麼不把它們合併? – FrankieTheKneeMan 2012-03-20 01:38:52

+0

@FrankieTheKneeMan邏輯上是沒有意義在我的上下文 - 數據需要被分離出來,獨立下拉菜單是做到這一點的最好辦法。 – 2012-03-20 01:41:03

+0

不要太多,但爲什麼?是因爲選擇太多了嗎?如果你只是想幫助你的用戶找到它?如果是這樣,那麼標籤可能是你正在尋找的。如果選擇太多,或許選擇不是正確的選擇。有關您的用例的更多信息將幫助我們爲您找到更可行的答案。 – FrankieTheKneeMan 2012-03-20 01:46:26

回答

1

使用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 
     }); 
    }); 
}); 
+0

感謝您的答覆。當我嘗試運行你的代碼時,我調用string test = Request.Form [「myValueField」];它返回null。我已將隱藏字段添加到我的表單中,並且需要頭部功能,但它仍然不起作用。有任何想法嗎? – 2012-03-20 02:05:09

+0

傻我,我錯了!應該有!任何想法,我可以在用戶選擇一個值時,禁用所有其他盒子? – 2012-03-20 02:10:00

+0

我更新了我的答案 - 仍然沒有保證,因爲沒有測試:) – Marc 2012-03-20 03:29:04

1

有很多方法可以做到這一點。一種方法是使用Javascript設置一個隱藏的輸入,其中包含要在服務器上處理的值。

相關問題