Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php IE7中输入键未发送提交按钮值_Php_Html_Form Submit - Fatal编程技术网

Php IE7中输入键未发送提交按钮值

Php IE7中输入键未发送提交按钮值,php,html,form-submit,Php,Html,Form Submit,在处理(常规的、无JS的)表单时,我注意到了一些我以前从未注意到的事情 如果通过点击Submit按钮提交表单,它将发送Submit按钮数据(&Submit=Submit或类似的数据) 但是,当使用Enter键提交时,同一表单会忽略Submit按钮数据 示例表格: <div id="messagebox"> <?php echo 'txt: [' . $_REQUEST['txt'] . ']<br>'; echo 'subm

在处理(常规的、无JS的)表单时,我注意到了一些我以前从未注意到的事情

如果通过点击
Submit
按钮提交表单,它将发送
Submit
按钮数据(
&Submit=Submit
或类似的数据)

但是,当使用Enter键提交时,同一表单会忽略
Submit
按钮数据

示例表格:

<div id="messagebox">
    <?php 
        echo 'txt: [' . $_REQUEST['txt'] . ']<br>';
        echo 'submit_btn: [' . $_REQUEST['submit_btn']  . ']<br>';
     ?>
</div>
<hr>
<div id="formbox">
    <form method="POST" action="?">
        <input type="text" name="txt" id="txt" value=""><br>
        <input type="submit" name="submit_btn" id="submit_btn" value="Submit"><br>
    </form>
</div>




[提交表单时,它应同时显示这两个变量,但按下Enter键时,它会忽略提交按钮数据。]

我一直在使用
submit
POST变量进行服务器端检查。我想我必须添加一个隐藏的输入或其他东西

无论如何,问题是:这是正常的行为吗?如果是,原因是什么?


我假设Enter键只是模仿Submit按钮。我现在猜不是。如果提交按钮是表单的一部分,但恰好没有单击,为什么不将其与其余数据一起发送?

您在$\u请求中漏掉了下划线,请立即将其删除。

<div id="messagebox">
    <?php 
        echo 'txt: [' . $_REQUEST['txt'] . ']<br>';
        echo 'submit_btn: [' . $_REQUEST['submit_btn']  . ']<br>';
     ?>
</div>

使用enter键可以正确提交表单。但在IE7中,提交按钮值将丢失,这是一种奇怪的行为。所以,您可以通过在表单中使用带有固定文本的隐藏文本字段来检查表单是否已提交。谢谢

<div id="messagebox">
    <?php 
        echo 'txt: [' . $_POST['txt'] . ']<br>';
        echo 'submit_btn: [' . $_POST['submit_btn']  . ']<br>';
        echo 'checker: [' . $_POST['checker']  . ']<br>';
     ?>
</div>
<hr>
<div id="formbox">
    <form method="POST" action="form.php" name="frms">
        <input type="text" name="txt" id="txt" value=""><br>
        <input type="hidden" name="checker" value="POST SUCCESS">
        <input type="submit" name="submit_btn" id="submit_btn" value="Submit">  
    </form>
</div>




您能否发布该表单的HTML代码,因为这取决于您如何标记和设置表单?谢谢。请编辑以添加示例。你可以在这里看到它的作用:在最新的firefox上,按enter键似乎对我很好。我正在IE7上测试。IE问题,也许?我通常会在其他浏览器中测试,但我现在才发现,我只能在这台机器上访问IE7。对不起,这是我在编写示例时犯的一个错误。真正的例子没有这个问题。如果它这样做了,那么无论使用哪种提交表单的方法,都不会返回任何内容。你是对的。它似乎也会影响IE8。IE9和所有其他浏览器都没有表现出这种行为,所以我想这又是由于IE的不兼容。