2016-06-08 115 views
0

这是我的第一个数据绑定通过AJAX HTML控件尝试。我检查/调试我的ajax调用和数据检索确定,但没有出现在选择选项。我的JavaScript位于我的aspx页面的底部。有什么问题选择选项不显示数据

$(function() { 
      $.ajax({ 
       type: "POST", 
       url: "psHlp.asmx/getDistricts", 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msg) { 
        $("#District").empty(); 

        $.each(msg.d, function() { 
         $("#District").append($("<option></option>").val(this['Value']).html(this['Text'])); 
        }); 


       }, 
       error: function() { 
        alert("Failed to load districts"); 
       } 
      }); 
     }); 

这是位于在我的网页开始我选择选项

<div class="col-sm-3 col-xs-12 ffield"> 
             <select id="District" style="display: none;"> 

             </select> 
            </div> 

回答

0

最后我找到了解决方案。以上所有建议都是正确的。发生此问题是因为我使用bootstarp JS/CSS(客户的设计师提供的设计),所以我需要重建追加后的多选选项。

var options = ""; 
    $.each(response.d, function() { 

     options += '<option value="' + this['Value'] + '">' + this['Text'] + '</option>'; 
    }); 
    $("#Town").append().html(options); 

    $("#Town").multiselect('rebuild'); 

希望这将帮助至少一人:)

0

您需要在您的$.each回调函数指定(index,value) PARAMS和使用value访问迭代元素。像这样的东西。

$.each(msg.d, function (index,value) { 
    $("#District").append("<option value='" + value.Value + "'>" + value.Text + "</option>"); 
}); 
+0

感谢,但没有奏效。我在循环显示值['value']中添加一个警告函数,并正确显示所有行。发生了什么?????? –

+0

请尝试更新的答案,看看它是否有效。 – phreakv6

+0

你能设置一个小提琴或给我的完整网址Ajax调用? ' “psHlp.asmx/getDistricts”' – phreakv6

0

请尝试在每个循环中使用像这样。

var options; 
$.each(msg.d, function() { 
options += '<option value="' + this["Value"] + '">' + this["Text"] + '</option>'; 
}); 
console.log(options); 
$("#District").append(options); 
+0

是@ phreakv6也是正确的,你可以传递参数在上面代码中的函数中,使用value可以加载这个值。 – Samir

+0

我也试过你的建议,但是值不在选择选项中填充。此日志消息<选项值= “1”> XXX<选项值= “3”> ZZZZ<选项值= “4”> DDD<选项值= “10”> vvvvl<选项值=“6 “> mmm。正如你所看到的值填充,但没有出现在选择选项。有些东西阻止它绑定 –

+0

@Maria h,所以你在你的循环中获得正确的HTML结构。所以请尝试一次使用像这样'$(“select#District”)。html(options); ”。希望这会对你有用。 – Samir