表格won';当使用Javascript生成时,不能提交

表格won';当使用Javascript生成时,不能提交,javascript,html,forms,Javascript,Html,Forms,我正在用javascript生成一个登录表单。表单显示完美,HTML在GoogleDev工具中看起来很好,但当我单击submit按钮时表单不会提交 以下是生成的表单代码: var loginBox = '<div id="loginBox">'; loginBox += '<h1>Login</h1>'; loginBox += 'Please use the form to login below<br /><br />'

我正在用javascript生成一个登录表单。表单显示完美,HTML在GoogleDev工具中看起来很好,但当我单击submit按钮时表单不会提交

以下是生成的表单代码:

var loginBox = '<div id="loginBox">';
loginBox    += '<h1>Login</h1>';
loginBox    += 'Please use the form to login below<br /><br />';
loginBox    += '<form action="home.php" method="post">';
loginBox    += '<div class="input">';
loginBox    += '<label for="username">Username</label>';
loginBox    += '<input type="text" name="username" />';
loginBox    += '</div>';
loginBox    += '<div class="input">';
loginBox    += '<label for="userpass">Password</label>';
loginBox    += '<input type="password" name="password" />';
loginBox    += '</div>';
loginBox    += '<div class="clear"></div>';
loginBox    += '<div class="input">';
loginBox    += '<input type="submit" class="submit button" value="Submit" />';
loginBox    += '</div>';
loginBox    += '</form>';
loginBox    += '</div>';
var loginBox='';
loginBox+='登录';
loginBox+=“请使用下面的表单登录

”; loginBox+=''; loginBox+=''; loginBox+=“用户名”; loginBox+=''; loginBox+=''; loginBox+=''; loginBox+=“密码”; loginBox+=''; loginBox+=''; loginBox+=''; loginBox+=''; loginBox+=''; loginBox+=''; loginBox+=''; loginBox+='';
你知道为什么这行不通吗? 我知道当按下submit按钮时,我可能会编写一些Javascript来提交表单,但我不明白为什么有必要这样做。
谢谢

更大的问题是为什么要用Javascript创建登录框

我认为重构表单并将表单放在隐藏的div中,然后根据需要使用JavaScript来显示/隐藏表单,这样会更干净。通过使用element.innerHTML动态添加表单,可以解决浏览器的一些问题


如果这不是一个选项,那么您可能必须更改JS以使用DOM添加它。这很冗长,也不容易阅读。

更大的问题是,为什么要用Javascript创建登录框

我认为重构表单并将表单放在隐藏的div中,然后根据需要使用JavaScript来显示/隐藏表单,这样会更干净。通过使用element.innerHTML动态添加表单,可以解决浏览器的一些问题


如果这不是一个选项,那么您可能必须更改JS以使用DOM添加它。这很冗长,不容易阅读。

我把它添加到这个页面上,它看起来很有效。您是否有任何可能拦截表单提交事件的客户端验证脚本

我的代码:

$(loginBox).appendTo("body");

我把它添加到这个页面上,它似乎起了作用。您是否有任何可能拦截表单提交事件的客户端验证脚本

我的代码:

$(loginBox).appendTo("body");


尝试为submit按钮指定一个名称No,仍然不起作用。尝试为表单指定一个名称,将submit按钮输入类型更改为button,然后让按钮的onclick事件根据表单名称提交表单。使用Chrome的Firebug或inspector检查生成的html,以确保正确关闭标记。您的按钮完全有可能被抛出表单之外;但它仍然不起作用。有趣的是,如果我移除显示:无;它可以工作。试着给提交按钮一个名称不,仍然不起作用。试着给表单一个名称,将提交按钮输入类型更改为按钮,然后有一个onclick事件,该按钮根据表单名称提交表单。使用Chrome的inspector的Firebug检查生成的html,以确保标签正确关闭。您的按钮完全有可能被抛出表单之外;但它仍然不起作用。有趣的是,如果我移除显示:无;很有效,谢谢,我想你是对的。也许最好把它放在一个隐藏的分区里。它不起作用。当我移除显示器时:无;从HTML来看,它是有效的。可能与显示器有关:无;?谢谢你,我想你是对的。也许最好把它放在一个隐藏的分区里。它不起作用。当我移除显示器时:无;从HTML来看,它是有效的。可能与显示器有关:无;?该死,我知道我做了什么。我有以下代码来隐藏登录框:$('loginWrapper').fadeIn()$('#loginBox').bind('click',function(){return false;})$('#loginWrapper').bind('click',function(){killLogin();});LoginBoxShowed=true;你知道我如何在不影响提交按钮的情况下做到这一点吗?它会在单击外部时删除登录框#LoginRapper是否在#loginBox周围起到覆盖作用?在这种情况下,我只需要使用代码:$('loginWrapper').bind('click',function(){$('loginWrapper,#loginBox').fadeOut();});该死,我知道我做了什么。我有以下代码来隐藏登录框:$('loginWrapper').fadeIn()$('#loginBox').bind('click',function(){return false;})$('#loginWrapper').bind('click',function(){killLogin();});LoginBoxShowed=true;你知道我如何在不影响提交按钮的情况下做到这一点吗?它会在单击外部时删除登录框#LoginRapper是否在#loginBox周围起到覆盖作用?在这种情况下,我只需要使用代码:$('loginWrapper').bind('click',function(){$('loginWrapper,#loginBox').fadeOut();});