【问题标题】:Choosing a Submit Button without JS选择没有 JS 的提交按钮
【发布时间】:2016-02-22 08:21:46
【问题描述】:

我有一个带有三个提交按钮的 HTML 表单。 一个是重新加载页面,另一个是数据库条目,最后一个是一个简单的登录按钮。每个按钮也在一个 div 中。

当我尝试登录时,我通常输入我的用户名和密码,然后按 Enter(我没有跳出文本框)。但不是按“登录”按钮,而是按“重新加载”按钮。

我发现了一些使用 Javascript、JQuery 和 AJAX 的方法,但我不允许使用其中任何一种。我只使用 PHP、CSS 和 HTML。

当我使用回车时,有没有办法选择我想按下的按钮?

编辑:

这是带有三个提交按钮的表单:

<form method="post"action="Sub.php">
<input type="text" id="txt" name="txt" value="text">
<input type="submit" id="refresh" name="refresh" value="Refresh">
<input type="submit" id="update" name="update" value="Update">
<input type="submit" id="login" name="login" value="Login">
<input type="text" id="txt" name="txt" value="text"></form>

这是我发布的文件。

<?php
if(isset($_POST['login']))
{echo "Login has been pressed";}
if(isset($_POST['update']))
{echo "Update has been pressed";}
if(isset($_POST['refresh']))
{echo "Refresh has been pressed";} ?>

如果我浏览第一个文件并在其中一个文本框中按 Enter,我将始终按下值为“刷新”的提交按钮。

【问题讨论】:

  • 你能告诉我们你到目前为止做了什么吗?
  • “我不允许使用这些”是什么意思?
  • 这不是重复的。这是一个不同的问题,她问的是提交,而不是处理。
  • 由于 JS 被认为是“危险的”,它在计算机上被禁用。
  • 默认按钮只是第一个。在这里阅读html.spec.whatwg.org/multipage/forms.html#implicit-submission 如果@jeroen 没有错误地将其关闭为重复项,我会将此添加为答案(肯定不是)

标签: php html css forms submit


【解决方案1】:

将您的提交类型按钮转换为简单按钮类型

$("#textbox_password_id").keyup(function(event){
  if(event.keyCode == 13) {
    $("#form_submit").submit();
  }
});

您可以先放置登录按钮的其他方式,因此无论何时按下它都会先提交点击

【讨论】:

  • “我找到了一些使用 Javascript、JQuery 和 AJAX 的方法,但我不允许使用其中任何一种。我只使用 PHP、CSS 和 HTML。”您的回答不涵盖 OP 的要求。
  • 我还添加了“您可以先放置登录按钮的其他方式,因此无论何时按下它都会先提交点击”
【解决方案2】:

How do I use two submit buttons, and differentiate between which one was used to submit the form? 重复

给每个输入一个名称属性。只有被点击的输入的名称属性会被发送到服务器。

<input type="submit" name="reload" value="Reload"/>
<input type="submit" name="database" value="Database Entry"/>
<input type="submit" name="login" value="Login"/>

<?php
    if (isset($_POST['reload'])) {
        // Reload-button was clicked
    }
    elseif (isset($_POST['database'])) {
        // Database-button was clicked
    }
    elseif (isset($_POST['login'])) {
        // Login-button was clicked
    }
    else {
        // Failure
    }
?>

【讨论】:

  • 我已经明白了。但这只是看起来,按下了哪个按钮。我想更改按下哪个按钮。
  • 当您按下回车键时,浏览器无法知道您希望它提交哪个提交按钮。
  • 我认为如果我给这些按钮中的每一个都赋予他自己的 div-box 可能会有一种方法。但是如果真的没有办法在不使用 JS、JQuery 或 AJAX 的情况下解决这个问题,那我就这样吧。谢谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
相关资源
最近更新 更多