首页 文章

在IE7中提交未在enter-key上发送的按钮值

提问于
浏览
0

我刚刚发现了一些我以前从未注意到的东西,同时处理(常规,无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按钮数据 . ]

我一直在使用 submit POST变量来进行服务器端检查 . 我想我将不得不添加隐藏的输入或其他东西 .

无论如何,这个问题: Is this normal behaviour? If so, why?

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

2 回答

  • 0

    使用回车键,表单提交正确 . 但是在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>
    
  • 2

    You have missed underscore in the $_REQUEST,,Chck it out now

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

相关问题