2015-07-04 83 views
0

enter image description here如何用AJAX填充选择列表?

我想填充选择与AJAX的选项。我究竟做错了什么?

这里是在我看来代码:

$(function() { 
    $.getJSON("Animes/GetCategories", null, function(data) { 
     var options = ''; 
     for (var x = 0; x < data.length; x++) { 
      options += '<option value="' + data[x]['CategoryID'] + '">' + data[x]['CategoryNom'] + '</option>'; 
     } 
     console.log(options); 
     $('#lstCat').html(options); 

    }); 
}); 

在我的控制器代码:

public JsonResult GetCategories() { 
    var affCat = from cats in db.Categories 
    select new { 
     CategoryID = cats.CategoryID, 
     CategoryNom = cats.CategoryNom 
    }; 

    return Json(affCat, JsonRequestBehavior.AllowGet); 
} 

选择的在我看来,代码:

<select id="lstCat"> 
    //Don't know what to place in the select 
    <option>?</option> 
</select><br /> 
+1

哦,亲爱的...这是一个可怕的烂摊子结合js框架。这里实际上有角吗?如果是这样,没有理由像这样做jQuery。 –

回答

0

val不用于添加html。

相反的:

$('#lstCat').val(options); 

尝试:

$('#lstCat').html(options); 
3

当您使用Angularjs,尝试使用完全代替使用jQuery混合

尝试这样

Js

var app = angular.module("app", []); 
app.controller("myCtrl", ["$scope", function($scope) { 
    $scope.categoryList = []; 
    $.getJSON("Animes/GetCategories", null, function(data) { 
     $scope.categoryList = data; 
    }); 
}]); 

HTML

<div ng-app="app" ng-controller="myCtrl"> 
    <select id="lstCat" ng-options="category.CategoryID as category.CategoryNom for category in categoryList"> 
    </select> 
</div> 

通过对HTML jQuery的方式有.html()追加HTML。 .VAL()如果只控制

这样

$('#lstCat').html(options); 

,并从你的HTML删除选项

像这样

<select id="lstCat"> 
</select> 
+0

这是我的不好,我添加了Angularjs标签,但我没有使用它。我不知道为什么我加了它 –

+0

然后尝试我在我的回答中提到的第二个sugession。 '$('#lstCat')。html(options);' –

+0

它不起作用,我会将代码粘贴到顶端,我不知道如何继续,我真的很厌倦这种事情正常工作 –