使用jquery为DropDownListFor设置选定的值

时间:2017-03-15 01:22:45

标签: javascript jquery ajax asp.net-mvc

我有一个国家下拉和一个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");

发现问题 因为存储在数据库中的数据库列表中有一个空格导致数据不匹配

2 个答案:

答案 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)

我想我发现了这个问题。 在将国家/地区列表导入数据库期间。每个国家的前面都有一个空间。

国家表商店作为“新加坡”数据库保存的用户是“新加坡”。 这就是为什么数据不匹配..

感谢大家的帮助