显示下拉列表或文本框,具体取决于父下拉列表值asp.net mvc2 jquery

时间:2011-08-28 13:52:51

标签: jquery asp.net-mvc-2

我有一个包含国家/地区名称列表的下拉列表,当用户选择USA时,我会在另一个下拉列表中向他显示​​状态列表。 我可以执行此功能 - 类似于Populating Dropdownlist Using MVC2 Based On Another Dropdownlist (Cascading DropDownList)

但是如果用户选择其他国家/地区,我想向他显示一个文本框,以便他可以输入州名。

我该怎么做?有没有人在任何网站上看到过类似的内容?

任何帮助都将得到真诚的帮助

此致 ARNAB

1 个答案:

答案 0 :(得分:0)

免责声明:我不是最新的ASP.NET MVC框架工具,所以我的默认方法可能比其他选项提供的手动更多。然而...

您可以做的是将文本框和下拉列表添加到页面并默认隐藏文本框。与此类似:

<div id="firstDropDown">
  <!-- ASP.NET markup for the first dropdownlist -->
</div>
<div id="secondDropDown">
  <!-- ASP.NET markup for the second dropdownlist -->
</div>
<div id="conditionalTextBox">
  <!-- ASP.NET markup for the conditional textbox -->
</div>
<script type="text/javascript">
  $(document).ready(function() {
    $('#conditionalTextBox').hide();
  });
</script>

从服务器的角度来看,所有控件都显示在页面上,服务器端代码不需要知道区别。然后,您将客户端事件附加到第一个下拉列表,以检查特定值并相应地显示/隐藏控件:

$('#<%= firstDropDownList.ClientID %>').change(function() {
  // add logic here to compare $(this).val() with known values
  // (populated from the server-side during view rendering of course)
  // and if the value matches known values for changing the controls:
  $('#secondDropDown').hide();
  $('#conditionalTextBox').show();
});