【问题标题】:ASP.NET MVC Hidden field not POSTingASP.NET MVC 隐藏字段未发布
【发布时间】:2010-03-01 11:49:44
【问题描述】:

使用 jquery 自动完成,我有一个隐藏的输入字段来存储 ID,因为名称会在选择时输入到自动完成字段中。

像这样:

        $("#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>

问题是这个隐藏的 ClientID 字段没有回发,也没有使用 jquery.serialize() 进行序列化。它总是失踪。但据我所知,我的代码看起来不错。

【问题讨论】:

    标签: jquery asp.net-mvc jquery-autocomplete


    【解决方案1】:

    为什么禁用隐藏字段?不要。

    【讨论】:

      【解决方案2】:

      这是因为该字段被禁用。

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

      【讨论】:

        【解决方案3】:

        当您将 disabled 属性设置为输入元素时,它的值 NOT 已发布:

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

        【讨论】:

        • 实际上我已将其设置为禁用,因为我也有一些禁用的输入文本字段并且它们的值确实会被发布。所以我遵循了同样的原则。
        猜你喜欢
        • 1970-01-01
        • 2014-03-29
        • 1970-01-01
        • 2011-06-30
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多