我正在创建一个编辑视图,它将根据编辑操作更改其内容和表单元素。我传递一个模型,在一个隐藏的元素中存储一个值,然后,一旦文档准备就绪,我使用ajax来填充下拉列表。紧接着,我需要选择与隐藏元素中的值相等的正确选项。 我的代码不起作用,我一直在试图找出为什么2天。MVC - jQuery的填充后选择正确的下拉选项
RAZOR
@Html.DropDownList("ddl_publisher", new List<SelectListItem>(), new { @class = "form-control form-group", @style = "display:none", @onchange = "storeNewPublisher()" });
@Html.Hidden("hid_publisher", Model.Value, new { @class = "form-control" })
JQUERY
$(document).ready(function(){
loadPublishers();
changeDDLSelection();
}
function changeDDLSelection() {
publ = $("#hid_publisher").val();
$("#ddl_publisher").val(publ).change();
}
function storeNewPublisher() {
var publisherText = $("#ddl_publisher option:selected").text();
var publisherValue = $("#ddl_publisher option:selected").val();
var publisherStatus = publisherText.replace(publisherValue, '').replace('-', '').replace('[', '').replace(']', '').trim();
$("#hid_publisher").val(publisherValue);
$("#hid_publisherStatus").val(publisherStatus);
}
AJAX
function loadPublishers() {
$.ajax({
type: "GET",
url: "/Filter/GetPublishers/",
contentType: 'application/json',
data: { productType : $("#ddl_filterProdType option:selected").val() },
success: function (data) {
$.each(data, function (i, pub) {
$("#ddl_publisher").append('<option value="' + pub.Text + '"> [ ' + pub.Value + ' ] - ' + pub.Text + '</option>');
});
},
error: displayPublishFailureMessage
});
}
呼叫succeedes了,里面changeDDLSelection变量publ具有正确的值,但下拉列表不会改变它的选项(它这样做,而是如果我在Chrome控制台中执行代码)。 然而,更改火灾,所以storeNewPublisher被触发,但每个局部变量是undefined。
我不能把我的头撞在墙上,我的邻居们都在抱怨。
提前
OK(附加所有从结果阵列的选项后),这其实与一起工作Shyju的回答!谢谢!我不知道为什么链接电话不会做的 – strongmmc