2013-07-19 199 views
1

我在MVC 3項目中使用下拉菜單(Html.DropDownFor(...))的HTML幫助器。Html.DropDownListFor使可見/不可見

在加載頁面時,我希望這個下拉菜單不可見。根據同一頁面上另一個下拉菜單的選擇,它將變得可見。我寫了一些JQuery來處理這個使用show()和hide()的東西。這適用於文本框和標籤,但我需要的是幫助程序本身的正確語法。我試過了:

<%:Html.DropDownListFor(a => Model.VariableOptionId, new { style = "display: none;" })%> 
<%:Html.DropDownListFor(a => Model.VariableOptionId, Visible = false })%> 

什麼是正確的語法?

回答

1

您可以添加一個類,例如.dropdown並使用$('。dropdown')。toggle();切換可見性。

的MVC助手語法是:

<%:Html.DropDownListFor(a => Model.VariableOptionId, new { @class = "dropdown" }) %> 

一個小的代碼的例子是:

HTML

<div class="toggle">Click me to toggle!</div> 
<br> 
<div> 
    <select class="dropdown"> 
     <option value="volvo">Volvo</option> 
     <option value="saab">Saab</option> 
     <option value="mercedes">Mercedes</option> 
     <option value="audi">Audi</option> 
    </select> 
</div> 

JS/Jquery的

$(document).delegate('.toggle', 'click', function() { 
    $('.dropdown').toggle(); 
}); 

工作例如:http://jsfiddle.net/8AKww/

編輯例如:http://jsfiddle.net/8AKww/1/

+0

我想你的例子,但它不是我想要的。我希望下拉菜單在加載頁面時不可見,並且在選擇另一個dd菜單中的選項時可見。 – user2284341

+0

我編輯了我原來的文章,因爲我不清楚自己想做什麼。 – user2284341

+0

我編輯了我原來的帖子。添加了「編輯示例」。檢查一下,看看你是否需要這些。你只需要兩個MVC DropDowns而不是一個類。 – Yushell

0
@model MvcApplication1.Models.ProductViewModel 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 


     @using (Html.BeginForm()) 
     {  
     @Html.DropDownListFor(x => x.SelectedMainCatId, new SelectList(Model.MainCategory,"Value","Text"), "Select Main..") 
      @Html.DropDownListFor(x => x.SelectedSubCatId, new SelectList(Model.SubCategory, "Value", "Text"), "Select Sub..")  
     <button type="submit">Save</button> 
     } 
     <script type="text/javascript"> 
     $(function() { 
      $("#SelectedMainCatId").change(function() { 
       var val = $(this).val(); 
       if(val == 'anycondition') 
       { 
         $("#SubCategory").hide(); 
       } 
       else 
         $("#SubCategory").show(); 
      }); 
     }); 
    </script> 
+0

我試過你的例子,但它不是我想要的。我希望下拉菜單在加載頁面時不可見,並且在選擇另一個dd菜單中的選項時可見。您的示例在某些更改事件中隱藏了dd。 – user2284341

+0

我編輯了我的原始文章,因爲我不清楚我想做什麼。 – user2284341