无法处理同一表单的div内的输入字段
问题描述:
我的ASPX页面中有一个表单,它由c#后面的代码处理。 它工作正常,直到我需要hide
或show
根据用户需求的某些输入。 这部分也运行良好,但是当我把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被隐藏,我也可以从显示的那个获得我想要的值。
问候。