javascript - ASP.NET MVC - 使用 Jquery 追加 HTML 后,DropDownList 值未定义
问题描述
我有两个下拉列表,当我更改第一个的值时,使用以下代码刷新第二个的值:
function FillBooks(val) {
$("#ddl_dep").attr("class", "form-group");
$("#Help1").css("visibility", "hidden");
var CategoryId = val;
//console.log(CategoryId);
console.log(CategoryId)
$("#DDL_TIPO").empty();
$.ajax({
url: '@Url.Action("UpdateTipo", "Tickets")',
type: "POST",
dataType: "JSON",
data: { value: CategoryId },
success: function (data) {
var markup = "<option value='0'>Selecione um Tipo</option>";
for (var x = 0; x < data.length; x++) {
markup += "<option value=" + data[x].value + ">" + data[x].Text + "</option>";
}
$("#DDL_TIPO").html(markup).show();
}
});
}
PS - 数据来自与我展示的示例无关的控制器。
在此之后,当我尝试获取第二个下拉列表的值时,它是未定义的。
我在这个 jquery 代码之前进行了测试,它给了我下拉列表的值,当我让这个函数在它上面工作时它没有给出。
解决方案
尝试这个:
<script>
function FillBooks(val)
{
$("#ddl_dep").attr("class", "form-group");
$("#Help1").css("visibility", "hidden");
var CategoryId = val;
//console.log(CategoryId);
console.log(CategoryId)
$.ajax
({
url: '@Url.Action("UpdateTipo", "Tickets")',
type: 'POST',
datatype: 'application/json',
contentType: 'application/json',
data: { value: CategoryId },
success: function(result)
{
$("#DDL_TIPO").html("");
$.each($.parseJSON(result), function(i, tipo)
{
$("#DDL_TIPO").append($('<option</option>').val(tipo.Value).html(tipo.Text))
})
},
error: function()
{
alert("Whooaaa! Something went wrong..")
},
});
}
</script>
推荐阅读
- reactjs - ReactJs - 将数组从父组件传递到子组件
- c++ - 将串行 HDF5 C++ 与 CMake 一起使用
- bootstrap-datepicker - 如何在 mysql 表的引导日期选择器中显示禁用日期?
- crystal-reports - Crystal Reports:连接到 SQL 服务器时出错
- java - 当 Docker 容器中的 Java MVC 应用程序尝试连接到另一个容器中的 MySQL 时,表不存在错误
- html - Jekyll:动态 CSS 类的 Liquid 自定义输出语句
- javascript - 在间隔上调用的函数访问全局变量
- scala - Scala Spark - 覆盖镶木地板文件未能删除文件或目录
- opengl - 从 QCoreApplication::processEvents 调用 QWidget::paintEngine
- mongodb-query - MongoDB 聚合以填充不在结果中的数组