0

嗨,我正在使用 json 数据从 sql server 填充另一个下拉列表的更改事件的下拉列表,当我签入 Firefox 时我得到了 json 数据,但我的下拉列表仍然为空 有人可以帮我这里做错了什么是我的代码

   function OnCathwordPopulated(response) {

         var xx = (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d;

         $("#<%=ddlCatchword.ClientID %>").removeAttr("disabled");

         $("#<%=ddlCatchword.ClientID %>").children().remove();

         $("#<%=ddlCatchword.ClientID %>").empty().append("<option selected='selected' value='0'>Please select</option>");

         var listItems = "";
         for (var i = 0; i < xx.length; i++) {

             var val1 = xx[i];

             var text1 = xx[i];
             listItems += "<option value='" + val1+ "'>" + text1 + "</option>";


         } $("#<%=ddlCatchword.ClientID%>").html(listItems);


     }

我也用了另一种方法

             $("#<%=ddlCatchword.ClientID%>").append($("<option></option>").val(val1).text(text));
4

3 回答 3

0

修改代码以正确删除。我假设这是根据上面的代码选择正确的列表。另外,一个小提琴例如:http: //jsfiddle.net/Tkt2B/

$("#<%=ddlCatchword.ClientID %>").removeAttr("disabled");
$("#<%=ddlCatchword.ClientID %>").find("option").remove().end()
$("#<%=ddlCatchword.ClientID %>").append("<option selected='selected' value='0'>Please select</option>");

 var listItems = "";
 for (var i = 0; i < xx.length; i++) {
     var val1 = xx[i];
     var text1 = xx[i];
     listItems += "<option value='" + val1+ "'>" + text1 + "</option>";
 } 

 $("#<%=ddlCatchword.ClientID%>").append(listItems);
于 2013-03-14T14:08:27.853 回答
0

我已经尝试过这种方法来测试数据

var h = ' <select name="test" id="ss" class="country" data-native-menu="false">';
             h = h + listItems;
             var w = window.open(); $(w.document.body).html(h);

它会在新窗口中打开带有所有 json 数据的新 dropdwon。我不知道有什么奇怪的地方出错了……请注意我使用 jquery mobile 和 asp.net

于 2013-03-14T17:30:40.850 回答
0

它通过使用以下技巧解决了,

 $("#<%=ddlCatchword.ClientID%>").html(listItems); $("#<%=ddlCatchword.ClientID%>").selectmenu('refresh', true);

在http://ozkary.blogspot.no/2010/12/jquery-mobile-select-controls-populated.html的帮助下得到它的帮助 谢谢!

于 2013-03-15T12:05:21.830 回答