1

嗨,我正在尝试使用 asp.net mvc3 开发一个 Web 应用程序我有一个包含下拉列表的视图,当用户选择下拉列表时,文本框必须自动填写,我如何在控制器中执行此操作我想放在我看来代码?

4

2 回答 2

0

以下 JQuery 插件可能对您有用。

http://dropdown-check-list.googlecode.com/svn/trunk/doc/dropdownchecklist.html

于 2012-07-06T12:37:15.710 回答
0

假设你有这样的 HTML 标记

<select id="states">
  <option value="1">MI</option>
  <option value="1">MI</option>
</select>
<input type="text" id="txtCity1" value="" />
<input type="text" id="txtCity2" value="" />

该脚本应该填充数据,假设您已将 jQuery 加载到您的页面。

$(function(){
 $("#states").change(function(){
     var itemVal=$(this).val();
     $("#txtCity1").val("Selected item is "+itemVal);
     $("#txtCity2").val("Ann Arbor");
 });
});

工作样本:http: //jsfiddle.net/JuAhm/4/

如果您正在寻找一种从服务器获取数据并填写文本框的方法,您应该进行 jQuery ajax 调用并以 JSON 格式获取数据并读取该 JSON 并将值设置到不同的文本框。像这样的东西

$(function(){
 $("#states").change(function(){
     var itemVal=$(this).val();

     $.getJSON("Url.Action("GetCities","State")"+"?id=itemVal,function(data){
        if(data.Status=="True")
        {
           //you may set the textbox values here by reading json result here
           //ex :   $("#txtCity2").val(data.Status);
          //If you want to loop thru each items under Cities 
          $.each(data.Cities,function(index,item){
            //  alert(item.Name)
          });
        }
        else
        {
           alert("No data found!");
        }

     });         

 });
});

假设您的控制器名称是State并且您有一个调用的HTTPGET操作方法,该方法调用GetCities了一个参数id并以以下格式返回JSON数据。

{
    "Status": "True",
    "Cities": [
               {  "ID": "1", "Name": "Ann Arbor" },
               {  "ID": "2", "Name": "Detroit"}
              ]
}
于 2012-07-06T12:43:18.000 回答