HTML 表单按钮值未在 Safari 和 Chrome 中发布

2022-08-31 01:13:46

我正在使用jQuery在单击按钮时提交表单。然后我想测试按钮的值,但是,这不会在Safari和Chrome中提交。为什么?有解决方法吗?

在IE / FF中测试以下代码以查看它是否有效,然后在Safari / Chrome中测试它以查看它是否有效:

ButtonPostTest.php:

<?php
    if(isset($_POST['testBtn'])) {
        echo $_POST['testBtn'];
    }
?>
<html>
    <head>
    <title></title>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                $('#btn').click(function() {
                    $('form').submit();  // submit the form
                });
            });
        </script>
    </head>
    <body>
        <form action="" method="post">          
            <button id="btn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
        </form>
    </body>
</html>

更新:

同样的事情也发生在:input

<input id="btn" class="page-btn" type="submit" name="testBtn" value="Post this"></input>

此外,这只是使用jQuery提交时的问题 - 没有这个,它可以通过按钮或输入提交。.submit()


答案 1

给它一个名字。

<button type='submit' id='trash' name='trash' value="trash" class='red'>

答案 2

我想你已经发现了一个webkit错误。

我在Chrome中进行了相同的测试,您的表单:

<form action="" method="post">          
   <button id="btn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
</form>

这不会发送任何数据。如果'但是我添加了另一个元素,特别是输入:

<form action="" method="post">          
   <input type="hidden" name="shim" value="" />
   <button id="testBtn" class="page-btn" type="submit" name="testBtn" value="Yes Button value is posted!">POST IT!</button>
</form>

这将发送这两个值。这是没有JavaScript的。添加填充程序隐藏表单元素后,它看起来有意义。

此解决方案需要更多测试,但它可能会满足您的需求。


推荐