2010-03-01 120 views
2

随着jQuery的自动完成我有一个隐藏的输入字段来存储ID,因为名称被输入到选择自动填充字段。ASP.NET MVC隐藏字段不POSTING

像这样:

 $("#Clients").result(function (event, data, formatted) { 
      if (data) { 
       $("#ClientID").val(data["client_ClientNumber"]); 
       if (data["ClientName"] && data["client_address1"] && data["client_postcode"] && data["client_postname"]) { 
        $("#ClientDetails").html(
        "<li class=\"clientNumber\">Client ID: " + data["client_ClientNumber"] + "</li>" + 
        "<li>" + data["ClientName"] + "</li>" + 
        "<li>" + data["client_address1"] + "</li>" + 
        "<li>" + data["client_postcode"] + data["client_postname"] + "</li>" 
        ); 
       } 
} 

这是我的HTML:

<div id="ClientSelectionPlaceholder"> 
     <h3>Client</h3> 
     <%=Html.TextBox("Clients", null, new { @class = "clientsDropDown" })%> 
     <%=Html.Hidden("ClientID", null, new { disabled = true}) %> 
    </div> 

的问题是,这个隐藏的客户端ID字段不回发也不确实与jquery.serialize序列化()。它总是缺失。但据我可以告诉我的代码看起来很好。

回答

6

为什么你禁用隐藏字段?别。

3

这是因为该字段被禁用。

...new { disabled = true}... 
2

当您设置禁用属性的输入元素,它的价值是发布:

<%=Html.Hidden("ClientID", null, new { disabled = true}) %> 
+0

其实我已经将其设置为禁用,因为我也有被禁用的一些输入文本字段他们的价值观得到了发布。所以我遵循了同样的原则。 – mare 2010-03-01 12:47:51