2017-03-15 54 views
0

我有一個國家下拉和ajax職位。當用戶鍵入某個ID時,這會自動觸發ajax帖子。其他字段如姓名和地址填充到該字段。但不是國家字段的DropDownListFor。任何人都可以提供幫助,真的很感激我嘗試了很多其他的解決方案,但都失敗了。爲DropDownListFor設置選定的值與jquery

阿賈克斯後

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

是什麼你得到回數據是什麼樣子?下拉列表中是否包含正確的值和文本? –

+3

'data.country'的價值是什麼?它與下拉列表中的選項中的一個值相匹配嗎? –

+0

是的,它匹配並且文本和值都已經存在。即使我硬編碼jquery中的值也沒有填充 –

回答

0

假設你正重返看起來像這樣的數據庫中的數據表空間:

[{countryName: countryText, countryId: countryValue},...] 

你能做些什麼在成功的情況下,以填充下拉列表是:

for(var v in result){ 
    countryDropdown.append("<option>", {value: result[v].countryId, text: result[v].countryName}); 
} 

然後挑選了下拉選擇的價值,你可以說:

countryDropdown.val("specificCountryId"); 
0

我想我找到了問題。 將國家列表導入數據庫。每個國家的前方都有一個空間。

用戶保存爲「新加坡」數據庫的國家表存儲爲「新加坡」。 這就是爲什麼數據不匹配..

感謝大家的幫助