2012-01-04 244 views
2

我想通過標準MVC3模板附帶的標準帳戶控制器代碼設置配置文件屬性(ComplexID)。當我從自動完成中選擇一個值時,我使用jquery庫中的自動完成小部件設置隱藏字段的值。 setter被我添加的警報確認,但是當我嘗試保存文本框值時,我從Model.IsValid中得到一個錯誤,說ComplexID需要設置。在帳戶模型中,我已將ComplexID字段設置爲[必填]。我究竟做錯了什麼?由於無法設置模型MVC屬性

<div> 
<input type="text" name="q" id="complexes" /> 
@Html.HiddenFor(m => m.ComplexID, new { id="complexid"}) 
</div> 

和JScript是:

$("#complexes").autocomplete({ 
    source: function(request, response) { 
    $.ajax({ 
    url: "/Account/QuickSearch", type: "POST", dataType: "json", 
    data: { query: request.term }, 
      success: function(data) { 
       response($.map(data, function(item) { 
        return { label: item.Name + " , " + item.Address1, value: item.Name, id: item.ComplexID }; 
       })) 
      } 
     }) 

    }, 
    minLength: 3, 
    select: function(event, ui) { 

     var selecteditem = ui.item; 
     $("#complexid").text(selecteditem.id); 
     alert(ui.item ? ("You picked '" + selecteditem.label + "' and the hidden textbox now has a value of " + $("#complexid").text()) : "Nothing selected");    
    } 
}); 

回答

2

更改此:

$("#complexid").text(selecteditem.id); 

$("#complexid").val(selecteditem.id); 
+0

+1應該這樣做 – Jesse 2012-01-04 17:20:27

+0

謝謝你們 - 那做了招 – Greg 2012-01-04 17:24:40