3

我是一个新手程序员,我想知道如何使用 javascript 正确提交表单。

我做了一些测试代码来告诉你我的意思:

<?php
    if (isset($_POST['message']))
    {
        echo $_POST['message'];
    }
?>

<script>
    function formsubmit() 
    {
        document.getElementById('form').submit();           
    }
</script>

<form id="form" name="form" action="" method="post">
    <input id="message" name="message" value="hello world">
    <input id="submit" name="submit" type="submit">
</form>

<a href="" onClick="formsubmit()">Click me</a><br/>
<input type="submit" onClick="formsubmit()" value="Click me">

当您按下标签内的“提交”按钮时 - php 代码将回显“hello world”。使用 JS 提交表单时,值不会发布到页面。我究竟做错了什么?

提前致谢。我整个下午都在寻找解决方案,但由于我缺乏编程知识,我没有找到它。

4

3 回答 3

6

信不信由你,但主要问题在这里:

<input id="submit" name="submit" type="submit">

如果一个表单包含一个名称(或 id)的输入元素,submit它将屏蔽.submit()表单元素的方法,因为.submit将指向按钮而不是方法。只需将其更改为:

<input name="go" type="submit">

另请参阅:注意事项form.submit()

较小的问题在这里:

<a href="" onClick="formsubmit()">Click me</a><br/>

一个空的锚点只会在调用之前再次请求相同的页面formsubmit()。只需添加href="#".

于 2012-11-29T23:40:44.907 回答
1

这里的问题是表单上输入元素的id和名称叫做submit。

这将屏蔽表单的提交功能。更改名称和 ID,您将能够使用 javascript 提交表单。

于 2012-11-29T23:46:18.880 回答
0

尝试将 href 设置为“#”。我猜发生的事情是,通过单击链接,它会提交表单并立即将 url 更改为您在取消表单提交之前取消表单提交的同一页面。

于 2012-11-29T23:39:49.913 回答