0

我想在单击按钮时显示一个弹出窗口。弹出窗口应该有一个文件上传控件。我需要实现上传功能。

基本页面具有嵌套表单。总共嵌套了三个表格。如果我评论这两个表单,那么我可以从请求对象中获取发布的文件。但我不应该评论其他两种形式。使用嵌套表单,我没有从 Request 对象中获取发布的文件。

我需要一些协议来实现这一点。

我正在使用 C#。弹出窗口是使用 jQuery 设计的。

正如建议的那样,我在此处发布示例代码。

<form id="frmMaster" name="frmMaster" method="post" action="Main.aspx" Runat="server" enctype="multipart/form-data">

<form method='Post' name='frmSub'>                      
<input type="hidden" name='hdnData' value=''>                   
</form> // This form is driven dynamically from XSL


<form method='Post' name='frmMainSub'>                      
<input type="hidden" name='hdnSet' value=''>                    
</form>


</form>

笔记:

评论内部形式工作正常。但是因为它需要其他功能,所以不应该触及这些表格。

我已经给出了这个代码作为示例。此页面中的实际 LOC 为 1200。第二个表单动态加载了许多控件。我被要求不要碰现有的表格。是否可以使用嵌套表单执行此功能?

4

3 回答 3

5

一个页面中可以有多个 HTML 表单标签,但它们不能相互嵌套。您需要删除嵌套才能使其正常工作。如果您发布一些代码,您可能会获得更多帮助,并提供一些解决此问题的具体建议。

从您发布的代码中,也不清楚为什么您甚至会倾向于使用多种形式。你能详细说明为什么你认为你需要多种表格吗?您的子表单中没有明确的操作,因此很难说出您希望他们发布的位置,但我猜它们都发布到同一页面。那么,为什么要使用多种形式呢?

于 2009-06-19T17:02:28.040 回答
2

You could always try putting one of the inner forms onto another page and serving it up in an iframe. That way the inner form is not technically inside the outer form. This will require you to alter some of the html, but there's really no way around that.

于 2009-06-19T17:47:02.680 回答
0

在您的情况下,无论您如何表达,您都在寻找黑客攻击。你不应该有嵌套的表格。

由于您使用 Javascript 来执行此操作,因此您可以尝试将要回发的表单元素移出父表单,然后在移动后执行.submit()操作。

这是一个丑陋的黑客 - 但我也是 HTML - :) (我孩子,我孩子!)

于 2009-06-19T17:37:56.217 回答