2012-01-04 76 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