jquery
  • asp.net
  • asp.net-4.0
  • 2014-12-05 48 views 0 likes 
    0

    我以编程方式在客户端创建了几个隐藏字段,插入到表单中。 我验证了form.childElementCount增加了。客户端动态创建的隐藏字段在回发时丢失

    var disabledState_id = "<%=HidData_DisabledState_Prefix%>" + uiObj.attr("id"); 
    ... 
    disabledState = $("<input type='hidden' id='" + disabledState_id + "' />"); 
    disabledState.appendTo("form"); 
    

    回发时,我无法在Request.Form中找到这些隐藏值。 无法在Request.Form.AllKeys中找到这些密钥,因为该ID固定为前缀。

    +3

    您需要设置名称属性 – 2014-12-05 10:37:30

    +0

    是的。 plz发布这个答案,所以我标记它。 – Kelmen 2014-12-05 10:41:35

    回答

    2

    您需要设置name属性以获取输入值s结束FORM提交。

    0

    如果您有代码生成的HiddenField,它需要具有相同的ID并在页面设置发布的值之前创建,例如在OnInit中。

    以下链接可以帮助你:

    http://www.codeproject.com/Articles/3684/Retaining-State-for-Dynamically-Created-Controls-i

    您可以使用:

    protected string disabledState = ""; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
         this.disabledState = Request.Form["disabledState"]; 
    } 
    

    在javascript中您可以使用以下方法:

    var disabledState ; 
        window.onload = function() { 
         disabledState = document.getElementById('"+disabledState_id+"'); 
        }; 
    
    +0

    我不是在服务器端创建它们,它们完全在客户端创建。 – Kelmen 2014-12-05 10:47:24

    +0

    查看上面编辑的帖子,如果它可以帮助你。 – user3263194 2014-12-05 10:58:13

     相关问题

    • 暂无相关问题^_^