2016-03-28 178 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> 
其他古怪
相关问题