2016-03-28 182 views
0

我的窗體上有一個文本框和一個下拉菜單。當從下拉列表中選擇「MessageDate」項目時,文本框應該被禁用。對於messageDate的值被存儲在Viewbag在控制器MVC4在選擇下拉列表項目時禁用文本框

控制器:

ViewBag.dd_search = dd_search; 
switch (dd_search) 
{ 
... 
case "msgDate": 
    modelml = modelml.Where(m => m.Message_Date == Convert.ToDateTime(searchText)).ToList(); 
break; 
} 

檢視:

<div class="col-md-2"> 
@Html.TextBox("searchText", ViewBag.searchText as string, new { @class = "form-control" })        
</div> 
<div class="col-md-2"> 
@Html.DropDownList("dd_search", new SelectList(EBA_AJAX.ViewModels.DropDown.DD_Message_Search(), "Value", "Text", ViewBag.dd_search), "--Select--", new { @class = "form-control" }) 

</div> 

的JavaScript:

<script> 
$('#ddsearch').change(function() 
{ 
    if ($(this).attr('@ViewBag.dd_search') == "msgDate") 
    $("#txtsearch").attr('disabled', 'disabled'); 
    else 
    $("#txtsearch").removeAttr('disabled'); 
}); 
</script> 

我已經使用this交參考但仍然沒有獲得所需的輸出。請幫忙。謝謝。

+0

除此之外,我不知道爲什麼你引用ViewBag。在你的事件比較中帶有@的dd_search屬性,刪除@並嘗試。 – Bardo

回答

0

用你的代碼替換這段代碼,我希望這會對你有用,它在我的機器上工作,你沒有在HTML中使用id屬性,在JS中訪問它,這就是爲什麼它不工作。
$(文件)。就緒(函數(){$ ( 「FM」)。變化(函數(){

  if (Your Condition) 
       $("#txtsearch").attr("disabled", "disabled"); 
      else 
       $("#txtsearch").removeAttr('disabled'); 
     }); 
    }); 
</script> 


    <div class="col-md-2"> 
      @Html.TextBox("searchText", "asad", new { @class = "form-control", id = "txtsearch" }) 
     </div> 
<div class="col-md-2"> 
@Html.DropDownList("dd_search", new SelectList(EBA_AJAX.ViewModels.DropDown.DD_Message_Search(), "Value", "Text", ViewBag.dd_search), "--Select--", new { @class = "form-control fm" }) 

</div> 
其他古怪
相關問題