我在这里有两种形式,第一种是选择下拉选择,它在发布时会生成另一种形式,并根据所选数字创建一个金额输入框。然后,第二种形式将来自输入框的数据放入2个数组中。所有这些都可以正常运行,但是我正在尝试向第二个表单上的“提交”按钮添加额外的功能。我创建了一个函数“ showcontet()”来显示和隐藏ID为“ table”的div中的内容。当在窗体外部的按钮上使用时,此方法非常有效。在表单内的“提交”按钮上使用时,您可以看到内容约1秒钟,然后内容再次消失。

    <head>
      <script type="text/javascript">
           showcontent = function(){
              var content = document.getElementById('tabl');
              content.style.display = 'inline';
           }

      </script>
        <?php
    $userkey = array();
    $userval = array();
    $usernum = $_POST['usernum'];
    $total = 0;
    ?>


        <form action='MYPIE.PHP' method='POST'>
                HOW MANY SECTIONS?
                    <select name="usernum" value="<?php echo $usernum;?>">
                          <option>1</option>
                          <option>2</option>
                          <option>3</option>
                          <option>4</option>
                          <option>5</option>
                          <option>6</option>
                          <option>7</option>
                          <option>8</option>
                          <option>9</option>
                    </select>
                <input type="submit" name="submitnum" value="submit selection" />
        </form>


    <form action='MYPIE.PHP' method='POST'>
        <?php
            for ($i=1; $i<$usernum+1; $i++){
                echo '<input type="hidden" value="' .$usernum.'" name="usernum" />';
                echo "<br>insert key:   <input name='key".$i."' value='".$userkey[$i]."'>   insert value:   <input name='val".$i."' >";

            $userkey[$i] = $_POST["key".$i];
            $userval[$i] = $_POST["val".$i];
            }

        ?>
        </br>
        <input type="submit" value="submit" name="submit keys" onclick="showcontent()" />
    </form>

    </table>


    <div id="tabl" style="display:none;">
    content
    </div>


不好意思,我很抱歉,谢谢您的帮助

最佳答案

使您的第二个按钮不是“提交”按钮,而是常规的“按钮”
否则将触发表单的提交...

要么

在表单“ onsubmit”事件上设置“ showcontent()”函数,并让该函数返回false:

onsubmit="return showcontent()"

function showcontent(){
    var content = document.getElementById('tabl');
    content.style.display = 'inline';

    $.ajax({
        type: "POST",
        url: "MYPIE.PHP",
        data: { usernum: $("select[name='usernum'] option:selected").val() }
        }).done(function() {
            alert('data posted');
    });

    return false;
}

关于javascript - 表单仅提交运行中的Javascript函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11362166/

10-12 12:43
查看更多