我有一个国家下拉和一个ajax帖子。当用户键入某个ID时,这将自动触发ajax帖子。其他字段如名称和地址将填充到该字段中。但不是国家/地区字段的DropDownListFor。任何人都可以帮助我真的很感激我尝试了很多其他解决方案,但都失败了。
Ajax帖子
function getmachineinfo(serial)
{
$.ajax({
url: '@Url.Action("getmachine", "JuraServicing")',
type: "POST",
data: { "serial": serial },
success: function (data) {
$('#customer_name').val(data.name);
$('#Customer_address_1').val(data.address1);
$('#customer_address_2').val(data.address2);
//$('#country option[value="China"]').attr("selected", "selected");
// $("#country").val(data.country);
$("#country").val(data.country).change();
// $('#country').val("China").attr("selected", "selected");
//$('#country').val(data.country).attr("selected", "selected");
//$('select[name^="country"] option[value="Singapore"]').attr("selected", "selected");
},
error: function (err) {
}
});
}
HTMl 我同时拥有"文字"和"价值"在选择列表中
@Html.DropDownListFor(model => model.country,(ViewBag.countrylist as SelectList), htmlAttributes: new { @class = " form-control col-md-3" })
添加了控制器
ViewBag.countrylist = new SelectList(db.countryLists, "Country", "Country", "Singapore");
发现问题 因为存储在数据库中的数据库列表中有一个空格导致数据不匹配
答案 0 :(得分:0)
假设您正在获取如下所示的数据:
[{countryName: countryText, countryId: countryValue},...]
在填充下拉列表的成功案例中您可以做的是:
for(var v in result){
countryDropdown.append("<option>", {value: result[v].countryId, text: result[v].countryName});
}
然后,为下拉列表选择一个选定的值,您可以说:
countryDropdown.val("specificCountryId");
答案 1 :(得分:0)
我想我发现了这个问题。 在将国家/地区列表导入数据库期间。每个国家的前面都有一个空间。
国家表商店作为“新加坡”数据库保存的用户是“新加坡”。 这就是为什么数据不匹配..
感谢大家的帮助