2017-04-18 28 views
-1

正常工作,在我看來,我有平變化不與引導

<div class="form-group"> 
    @Html.LabelFor(m => m.IsBasket, new { @class = "control-label col-sm-2" }) 
    <div class="col-sm-10"> 
     <div class="input-group" id="IsBasket"> 
      @Html.DropDownListFor(model => model.IsBasket, ViewBag.RefAssetType as IEnumerable<SelectListItem>, new { @class = "form-control" }) 
     </div> 
    </div> 
</div> 

    <div id="SingleStock" class="hide"> 
      <div class="form-group"> 
       @Html.LabelFor(m => m.ReferenceAsset, new { @class = "control-label col-sm-2" }) 
       <div class="col-sm-10"> 
        <div class="input-group"> 
         @Html.DropDownListFor(model => model.ReferenceAsset, ViewBag.RefAssetList as IEnumerable<SelectListItem>, new { @class = "form-control" }) 
        </div> 
       </div> 
      </div> 
     </div> 

     <div id="Basket" class="hide"> 
      <div class="form-group"> 
       @Html.LabelFor(m => m.PayoutCurrency, new { @class = "control-label col-sm-2" }) 
       <div class="col-sm-10"> 
        <div class="input-group"> 
         @Html.DropDownListFor(model => model.PayoutCurrency, ViewBag.CurrencyList as IEnumerable<SelectListItem>, new { @class = "form-control" }) 
        </div> 
       </div> 
      </div> 
     </div> 

我的腳本

<script> 

     $('#IsBasket').on('change',function() 
     { 
      if ($(this).val()== true) 
      { 
       $('#SingleStock').addClass('hide'); 
       $('#Basket').removeClass('hide'); 
      } 
      if ($(this).val() == false) 
      { 
       $('#Basket').addClass('hide'); 
       $('#SingleStock').removeClass('hide'); 
      } 
     }) 

</script> 

爲RefAssetType選擇列表在這裏被定義

Dictionary<bool, string> RefAssetTypeDictonary = new Dictionary<bool, string> 
      { 

       {false, "Single Stock"}, 
       {true, "Basket"}, 
      }; 

ViewBag.RefAssetType = new SelectList(RefAssetTypeDictonary, "Key", "Value"); 

我最終想要的是如果用戶從id =「IsBasket」中選擇「籃子」,那麼輸入ID = Basket將顯示出來。如果是SingleStock,那麼會顯示輸入ID = SingleStock部分。但改變是行不通的。

我希望有人能幫到這個。謝謝:)

回答

0

問題是,您將一個onchange處理程序附加到包含您的下拉菜單的div。當下拉列表的值發生變化時,這並不意味着容器div會發生變化。

$('#IsBasket').find('select').on('change',function() { 
    // ... 
}); 

有了這個選擇,你的onChange處理連接到任何HTML選擇包含在DIV ID爲#IsBasket元素:如果你改變你的jQuery選擇使用find,這樣它應該工作。

+0

謝謝..但它不工作。籃子或單個部分都不顯示 – kingslucifer

+0

模板生成的HTML代碼是什麼樣的?我假設它會呈現一個選擇元素 –

+0

把更改處理程序函數內的alert或console.log語句,看看它是否觸發 –