2010-09-27 132 views
0

我的网站已经创建了一个已经集成到ASP.NET网站的CSS/HTML框架工作。表单不通过JavaScript提交按钮

在ContentPlaceHolder中,我有一个简单的登录表单。问题在于,我正在使用图像的onclick事件来提交表单。它通常很简单,但这次我遇到了问题。

<div id="login"> 
    <form action="index.aspx" method="post" id="nothingForm" name="nothingForm"> 
    </form> 
    <form action="https://google.com.au" method="post" id="loginform" name="loginform"> 
     <input type="text" name="uname" value="username" onfocus="if(!this._haschanged){this.value=''};this._haschanged=true;"/> 
     <input type="password" name="pword" value="password" onfocus="if(!this._haschanged){this.value=''};this._haschanged=true;"/> 
    </form> 
    <br /><img src="images/login.gif" alt="" onclick="document['loginform'].submit()" /> </div> 

我要坚持另一种形式,真正形成之前进行的onclick =“文件[‘登录表单’]。提交()”实际工作。当然,情况并非如此,但我无法在网上找到任何解决方案。

有没有其他人遇到过这个?

+0

检查并查看您的内容占位符是否在表单内。这可能会导致表单提交问题... – EJC 2010-09-27 04:11:47

+0

为什么不使用服务器端控件呢?你正在使用ASP.NET,有一个内置的登录小工具... – EJC 2010-09-27 04:16:13

+1

即使没有“nothingForm”,你的代码似乎也能正常工作。您可以在公共网站或JSBin.com上重现问题吗?你是否遇到了特定浏览器的问题? – brianpeiris 2010-09-27 04:27:39

回答

1

你的问题是该页面已经有一个围绕所有代码的形式。表单不能嵌套,因此您的第一个表单标记将被忽略,并且结束标记将结束外部表单。

您必须将表单放置在已有表单之外。

+0

这样做,谢谢Guffa!永远不会想到检查嵌套的表单... – Robert 2010-09-27 05:00:31

2

你试过document.getElementById("loginform").submit()?我认为这会更好,因为我从来没有见过任何人像以前那样访问文档本身的元素。可能会有某种奇怪的副作用。

+0

感谢您的回复。我确实尝试过,没有运气。 – Robert 2010-09-27 04:52:40

+0

...或document.forms [“form-id”]。submit() – secretwep 2013-10-24 19:19:55