asp.net form标签嵌套 提交页面的解决方法

来源:互联网 发布:淘宝优惠券使用方法 编辑:程序博客网 时间:2024/06/06 02:48

原帖地址:http://blog.cnria.com/post/aspnet-form-e5b58ce5a597-e68f90e4baa4e9a1b5e99da2e79a84e8a7a3e586b3e696b9e6b395-from-e5b58ce5a597-aspnet-e8a1a8e58d95.aspx

 

这个问题的原因其实并不是asp.net 运行机制的原因,而是因为在html中本身就不允许form标签嵌套使用,我试过document.getelementbyid("search") 语句但并不能得到search表单对象,因为在浏览器解析html是时候会忽略form标签中又嵌套的form标签。

解决方法:通过动态改变最外层form标签的action属性来达到form嵌套使用的效果,呵呵,算是一种曲线解决方法吧。
修改上面的代码如下:
<form id="form1" runat="server">                       //这个是asp.net页面最外层form标签
        //搜索表单没有runat="server" 运行在客户端
      <form id="search" action="search.aspx">         //搜索表单 
             <input type="text" name="searchtext" id="searchtext" />
            <input name="subsearch" type="button" onclick="javascript:document.forms[0].action='search.aspx';document.forms[0].submit()" />
      </form>
     //投票表单
     <form id="vote" action="vote.aspx">         //投票表单
             <input type="text" name="votetext" id="votetext" />
            <input name="subvote" type="button" onclick="javascript:document.forms[0].action='vote.aspx';document.forms[0].submit()" />
      </form>
</form>

红色部门为注要代码。
如有写的不对的地方欢迎大家指正。