【问题标题】:ASP.NET CheckBox inside a hidden DIV always returns false隐藏 DIV 中的 ASP.NET CheckBox 始终返回 false
【发布时间】:2013-05-18 17:18:51
【问题描述】:

我在一个隐藏的 div 中有一组表单元素,如下所示:

<div id="jDivUpdateFolder" style="display:none;">
    <asp:TextBox ID="txtEditFolderName" runat="server"></asp:TextBox><br />
    <asp:TextBox ID="txtEditFolderDesc" runat="server" TextMode="MultiLine"></asp:TextBox><br />
    <asp:FileUpload ID="fuEditPhoto" runat="server" /><br />
    <asp:DropDownList ID="ddlEditContentOrder" runat="server">
        <asp:ListItem Value="0" Text="Ascending"></asp:ListItem>
        <asp:ListItem Value="1" Text="Descending"></asp:ListItem>
    </asp:DropDownList><br />
    <asp:CheckBox ID="chkEditIsActive" runat="server" Text="Active" /><br />
    <asp:CheckBox ID="chkEditShowOnHome" runat="server" Text="Show on HomePage" /><br />
    <asp:LinkButton CssClass="anchorbutton green" ID="btnSaveEditFolder" Text="Save" runat="server"></asp:LinkButton>

我通过 jQuery 中的一个函数来切换这个 div 的可见性(为了简单起见,这里不包括它)

当使用btnSaveEditFolder 的click 事件提交表单时,我可以正确检索TextBoxes、FileUpload 控件和DropDownList 的所有值。但不知何故,复选框总是返回 false。我要疯了。。

Protected Sub btnSaveEditFolder_Click(sender As Object, e As System.EventArgs) Handles btnSaveEditFolder.Click
    Dim fID As Integer = Convert.ToInt32(txtFolderID.Value.Trim) ' value is good
    Dim fname As String = txtEditFolderName.Text.Trim ' value is good
    Dim fdesc As String = txtEditFolderDesc.Text.Trim ' value is good
    Dim order As String = IIf(ddlEditContentOrder.SelectedItem.Value = "0", "Asc", "Desc") ' value is good
    Dim isactive As Boolean = IIf(chkEditIsActive.Checked, True, False) ' ## ALWAYS FALSE
    Dim isvisible As Boolean = IIf(chkEditShowOnHome.Checked, True, False) ' ## ALWAYS FALSE
End Sub

当我删除样式 display:block; 并且表单在页面上可见时,它们会返回正确的值(如果选中则返回 true,否则返回 false..)

有人遇到过这样的问题吗?

【问题讨论】:

  • 您能否发布有关如何更改复选框值的代码?如果这是隐藏的,您可能会使用 javascript,对吗?
  • 是的,我使用 javascript 但只是隐藏/显示 div 本身。我没有任何客户端代码来选中/取消选中复选框。
  • 有趣的是,我将上面的代码复制并粘贴到测试页面上,两个复选框都返回了预期值。

标签: javascript asp.net css vb.net webforms


【解决方案1】:

将复选框的值设置为true:

value="True"

发布并让我知道这是否有效。听起来很傻,但只要做就行了,如果行不通,我会为你进一步研究。

【讨论】:

    【解决方案2】:

    试试:

    Dim isactive As Boolean = chkEditIsActive.Checked
    

    【讨论】:

      猜你喜欢
      • 2016-10-15
      • 2021-11-23
      • 1970-01-01
      • 2011-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多