单个表单中的多个<buttons> - 未传递给POST的值

时间:2017-02-18 02:00:56

标签: javascript php jquery ajax forms

现在已经过了一个小时的直接爆炸,似乎无法在任何地方找到解决方案。

我有一个有多个按钮的表单。

按钮:

  1. 获取电子邮件
  2. 保存
  3. 跳过
  4. 第一个使用Ajax从MySQL获取电子邮件地址。这个工作正常。

    最后3个应该刷新页面并根据值执行操作。

    问题是按钮标签没有传递给POST。所有其他表单字段都没有问题。

    我使用Chrome构建它,在Firefox和IE上测试过,同样的问题就出现了。没有提交值。

    以下是一些涉及的JS

        <script type="text/javascript">
        //saves and goes to next page
            function submitForm(action)
            {
                document.getElementById('ajaxform').action = action;
                document.getElementById('ajaxform').submit();
            }
    

    **表格**

    <form name="ajaxform" id="ajaxform" action="inc/scripts/email_api.php" method="POST"  >
    <input type="text" name="fname" placeholder="First Name" id="fname" required />
    <input type="text" name="lname" placeholder="Last Name" id="lname" required/>
    <input type="hidden" value="<?php echo $domain;?>" name="domainName" id="domainName">
    <input type="hidden" value="<?php echo $article_id;?>" name="articleId" id="articleId">
    <button id="run-code" name="getEmail" onclick="return validateForm()" >Run Code</button>
    <input type="radio" value="blog" name="websiteType" id="blog">
    <input type="radio" value="junk" name="websiteType" id="junk">
    <input type="radio" value="guest" name="websiteType" id="guest">
    <input type="button" name="save" value="save" onclick="submitForm('<?php echo $_SERVER['PHP_SELF'];?>')" id="saveContinue" disabled />
    <input type="button" name="skip" value="skip" onclick="submitForm('<?php echo $_SERVER['PHP_SELF'];?>')" id="skip" />
    <input type="button" name="ban" value="ban" onclick="submitForm('<?php echo $_SERVER['PHP_SELF'];?>')" id="ban" />
    </form>
    

    我还应该提一下,我已尝试将其设为type =“submit”,但值仍未通过。我也试过让所有的按钮具有相同的名称,但这也没有用。

    任何想法/建议将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:0)

type="button"个元素未以表单

提交

尝试更改为type="submit",默认情况下会提交表单而不需要任何javascript

答案 1 :(得分:0)

发现了其他人在努力解决这个问题。

问题是使用我在这里找到的Javascript行提交提交按钮。

我不是JS的专家,但无论出于何种原因,该功能阻止了发布Vars。所以我找到了一种解决方法,可以在函数外添加onclick到按钮。

                    <input type="submit" name="save" value="save" onclick='this.form.action="<?php echo $_SERVER['PHP_SELF'];?>"' id="save" disabled />
                    <input type="submit" name="skip" value="skip" onclick='this.form.action="<?php echo $_SERVER['PHP_SELF'];?>"' id="skip" />
                    <input type="submit" name="ban" value="ban" onclick='this.form.action="<?php echo $_SERVER['PHP_SELF'];?>"' id="ban" />

执行此操作后,按钮将不再起作用。因此,解决此问题的方法是将novalidate添加到您的<form>代码中。