Javascript 表单中不发送按钮数据

Javascript 表单中不发送按钮数据,javascript,php,html,forms,Javascript,Php,Html,Forms,我的表单中有一个奇怪的行为,它从文本框发送数据,但不发送按钮数据 这是我的表格: <form name="login_registro" method="POST" id="login_registro"> <input type="text" id="username" name="username" value=""> <input type="text" id="password" name="password"> <in

我的表单中有一个奇怪的行为,它从文本框发送数据,但不发送按钮数据

这是我的表格:

<form name="login_registro" method="POST" id="login_registro">
    <input type="text" id="username" name="username" value="">
    <input type="text" id="password" name="password">

    <input type="submit" name="hacer_login" style="width:auto; height:auto; padding:5px;" class="button" onclick="submitForm('{{matches|last}}/entrar')" value="entrar">

    <input type="submit" name="registro" style="width:auto; height:auto; padding:5px;" class="button" onclick="submitForm('{{matches|last}}/registro')"  value="regístrate gratis!" >
</form>

提交功能:

<script type="text/javascript">
    function submitForm(action) {
    document.getElementById('login_registro').action = action;
    document.getElementById('login_registro').submit();
}
</script>

函数提交表单(操作){
document.getElementById('login_registro')。action=action;
document.getElementById('login_registro').submit();
}
在这两页(entrar和registro)中,我打印了一张打印纸($);它只显示两个输入,用户名和密码。它没有显示按下的按钮

如果我删除onclick函数,并添加action=“page.php”,它将发送两个输入加上按下的按钮

我知道我可以解决问题,但我想知道为什么会发生这种情况。谢谢


注:我对所有jquery都做了评论。

您的问题是,使用
onclick
并提交表单,将提交两次,因为提交按钮已经发送表单,您添加了
form.submit()

使用
onsubmit=“return submitForm('actionName')”
。如果在函数末尾返回
true
,则表单将被提交。如果返回
false
,则提交将被取消

通过不动态设置操作并将其作为表单字段或参数发送(通过
submitForm
函数设置),可以更优雅地完成此操作,但这意味着对服务器端代码进行更改

function submitForm(action) {
    document.getElementById('login_registro').action = action;
}

我完全不明白你的回答,但你给了我一个暗示。您是如何说表单提交了两次的,因此删除函数中提交表单的行对我来说很有用。

谢谢您的回答,我会投票给您,但不能将您标记为已回答,我自己添加了答案。谢谢基本上,如果你按下按钮,它就会提交表格。如果你在上面添加一个额外的处理程序(一个执行form.submit的函数),那就是另一个submit。确切地说,这就是问题所在。