php - PHP 如何确定用户是否按下了回车键或提交按钮?

标签 php forms submit form-submit

我遇到的问题是我在一个表单中有多个提交输入。这些提交输入中的每一个都有不同的值,我更愿意将它们保留为提交。

每当用户按下 Enter 时,就好像按下了最顶层的提交输入,因此它会导致代码检查单击了哪个输入的问题。

有没有办法让 PHP 确定输入是否被点击,或者只是当用户按下 Enter 键时选择的输入?

最佳答案

如果您的 HTML 结构正确,您可以识别使用了哪个按钮

<input type="submit" name="action" value="Edit">
<input type="submit" name="action" value="Preview">
<input type="submit" name="action" value="Post">

$_POST 数组(或 $_GET/$_REQUEST)将包含键“action”和激活按钮的值(无论是否点击)。

现在,“点击”显然是一种客户端行为 - 如果您想区分点击和按键,您需要在表单中添加一些脚本来帮助确定。

编辑

或者,您可以“偷偷摸摸”地使用隐藏提交,该提交应正确识别提交的按键,但这可能会对可访问性产生一些重大影响。

<?php

if ( 'POST' == $_SERVER['REQUEST_METHOD'] )
{
    echo '<pre>';
    print_r( $_POST );
    echo '</pre>';
}

?>
<form method="post">

    <input type="text" name="test" value="Hello World">

    <input type="submit" name="action" value="None" style="display: none">
    <input type="submit" name="action" value="Edit">
    <input type="submit" name="action" value="Preview">
    <input type="submit" name="action" value="Post">

</form>

关于php - PHP 如何确定用户是否按下了回车键或提交按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/795132/

相关文章:

php - 对象比较给出 fatal error

javascript - 使用 jQuery 检查基于选择值的复选框

javascript - 禁用表单提交可防止发送按钮属性

java - 在 Wicket 中提交表单后的 AjaxFormComponentUpdatingBehaviour 问题

javascript - jQuery:表单提交 - 多个事件处理程序

javascript - 为什么 addEventListener 对我的提交按钮不起作用?

php - knpmenubundle:如何在构建器中获取用户数据?

php - 将值从一个表插入到另一个表

php - Mysql NOT ON语句

CSS 菜单在 IE7 或更低版本中不起作用