使用多个提交的j-query和javascript表单不提交表单中的所有数据

时间:2010-12-14 02:14:29

标签: javascript jquery forms submit

我对javascript或jQuery并不是很好,主要处理数据库,但是我在获取一个相当复杂的表单来提交所有数据方面遇到了一些麻烦。

基本上它相当于三个不同的提交按钮,这些按钮用于在表单中发布带有发送到表格的不同隐私设置的数据。数据库中的表正在使用每个按钮的正确隐私设置进行更新,但它不会将表单的思想部分的值发送到它所支持的php文件。

表单在HTML中实现如下:

<FORM action="thought_post.php" method="post" name="thought">

<INPUT onfocus="this.select(); this.value=''" 
       type="text" value="Thought..." 
       size="72" />
<div class="megamenu" style="position: absolute; ;left: 478px; top: 11px;">
    <ul>
        <li class="downservices"><a href="#">Publish...</a></li>
        <div class="servicesdropped">
            <ul class="right">
                <input type="hidden" name="privacy">
                <li><a href="javascript:poststyle('private')">Private</a></li> 
                <li><a href="javascript:poststyle('friends')">Friends only</a></li>
                <li><a href="javascript:poststyle('public')">Public</a></li>
            </ul>
        </div>
    </ul>
</div>

</FORM>

并且同一页面标题中的javascript如下:

<link rel="stylesheet" href="dropdown.css" type="text/css" media="screen" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>

<script type="text/javascript"> 
    $(document).ready(function(){
        $(".downservices").click(function(){
            $(".servicesdropped").toggle("fast");
        });
    });
</script>

<script language="JavaScript" type="text/javascript">
<!--
   function poststyle(selectedtype)
    {
       document.thought.privacy.value = selectedtype ;
       document.thought.submit() ;
    }
-->
</script>

如果有人能够解释为什么用户输入的thought值没有传递给thought_post.php,这将是非常棒的!

2 个答案:

答案 0 :(得分:2)

尝试为您的“思想”name分配input。表单控件需要namevalid for submission

<INPUT onfocus="this.select(); this.value=''" type="text" value="Thought..." size="72" name="thought" />

作为旁注,请确保您的其他input也是有效标记,input代码应该是自动关闭的:

<input type="hidden" name="privacy" />

进行这些更改并使用FireBug检查表单后,我可以看到“思考”的正确值。

另外,正如其他答案所提到的那样,你应该separate your JavaScript and HTML并且可以用jQuery完成这个。

希望有所帮助!

答案 1 :(得分:0)

尝试为隐私字段设置ID(例如,id =“privacy”)并选择它:

getElementById("privacy").value = selectedtype;

顺便说一句,您可以将所有javascript放在一个<script>块中:

<script type="text/javascript"> 
    $(document).ready(function(){
        $(".downservices").click(function(){
            $(".servicesdropped").toggle("fast");
        });
    });

    function poststyle(selectedtype)
    {
        document.thought.privacy.value = selectedtype ;
        document.thought.submit() ;
    }
</script>

您还可以使用jQuery轻松处理输入上的焦点事件,因此HTML中的脚本不会被删除。