无法处理同一表单的div内的输入字段

问题描述:

我的ASPX页面中有一个表单,它由c#后面的代码处理。 它工作正常,直到我需要hideshow根据用户需求的某些输入。 这部分也运行良好,但是当我把div放入时,我的c#无法再获取表单值。 这里是我的代码的模拟:无法处理同一表单的div内的输入字段

<form id="form1" runat="server"> 
    <table width="100%" frame=box> 
     <tr> 
     <td> 
      <div id='firstText' runat="server"> 
      <table> 
       <tr> 
        <td> 
         <input name="INPUT1" id="idInput1" runat="server" type="radio" value="someVal" checked /> 
        </td> 
       </tr> 
      </table> 
      </div> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      <div id='secondText' runat="server"> 
      <table> 
       <tr> 
        <td> 
         <input name="INPUT2" id="idInput2" runat="server" type="radio" value="someVal2" checked /> 
        </td> 
       </tr> 
      </table> 
      </div> 
     </td> 
     </tr> 
    </table> 
</form> 

后面的代码:

string selectedOption = Request.Form["INPUT2"]; 

与上述情况,我所得到的selectionOption总是null。 但是,当我从代码中删除div时,一切都很好。

任何建议表示赞赏球员。

当您添加一个提交按钮时,selectedOption值正确。示例代码如下。

Default.aspx的

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="NestedIdTest.Default" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
    <table width="100%" frame=box> 
     <tr> 
     <td> 
      <div id='firstText' runat="server"> 
      <table> 
       <tr> 
        <td> 
         <input name="INPUT1" id="idInput1" runat="server" type="radio" value="someVal" checked /> 
        </td> 
       </tr> 
      </table> 
      </div> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      <div id='secondText' runat="server"> 
      <table> 
       <tr> 
        <td> 
         <input name="INPUT2" id="idInput2" runat="server" type="radio" value="someVal2" checked /> 
        </td> 
       </tr> 
      </table> 
      </div> 
     </td> 
     </tr> 
    </table> 
    <asp:Button ID="Button1" runat="server" Text="Button" /> 
</form> 
</body> 
</html> 

Default.aspx.cs(代码后面)

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace NestedIdTest 
{ 
    public partial class Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      string selectedOption = Request.Form["INPUT2"]; 
     } 
    } 
} 

请注意添加行的Default.aspx

<asp:Button ID="Button1" runat="server" Text="Button" /> 

谢谢。

我已经有一个提交按钮,忘了在模拟代码中提到它。 我发现问题了。如果有人遇到此问题,请详细说明。

背后我被默认

secondText.visible = false; 

这就是为什么我不能看它的输入值隐藏的div的一个代码的页面加载。实际上,我期望组件的值即使不可见也是可访问的。我不禁用它,只是改变可见的属性。

无论如何,学到了新东西! 我在可见区域创建了一个隐藏div来保存隐藏区域中我想要的值。所以即使div被隐藏,我也可以从显示的那个获得我想要的值。

问候。