首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >窗体不发送按钮数据。

窗体不发送按钮数据。
EN

Stack Overflow用户
提问于 2014-10-19 11:56:41
回答 2查看 61关注 0票数 0

我有一个奇怪的行为在我的形式,它发送数据从文本框,但它不发送按钮数据。

这是我的表格:

代码语言:javascript
运行
复制
<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>

提交功能:

代码语言:javascript
运行
复制
<script type="text/javascript">
    function submitForm(action) {
    document.getElementById('login_registro').action = action;
    document.getElementById('login_registro').submit();
}
</script>

在这两个页面(entrar和registro)中,我做了一个print_R($_POST);它只显示了两个输入,用户名和密码。它没有显示按下的按钮。

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

我知道我能解决问题,但我想知道为什么会这样。谢谢。

PS:我评论了所有的jquery。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-19 13:34:09

代码语言:javascript
运行
复制
function submitForm(action) {
    document.getElementById('login_registro').action = action;
}

我完全不明白你的回答:维琴提乌·巴乔尤,但你给了我一个提示。您说表单提交了两次,因此删除它在函数中提交表单的行对我有效。

票数 0
EN

Stack Overflow用户

发布于 2014-10-19 12:13:13

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

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

您可以通过不动态设置操作并将其作为表单或参数的字段(通过submitForm函数设置)来实现,但这意味着对服务器端代码的更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26450230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档