jQuery Ajax Form重定向到查询处理页面而不是停留在表单上

时间:2014-03-14 01:08:09

标签: jquery

我一直试图让这段代码起作用。它应该在结果范围内返回“委员会警报添加”,但它会继续进入处理页面。处理页面成功,只是回声成功或失败。

这是表格

    <div class="addbox">
        <p>Select Committees Below</p>
        <form id="alertForm" action="process.php" method="post">
            <input type="hidden" name="userid" value="<?php echo $userid; ?>" />
            <input type="text" id="committeeid-input" name="committeeid" />
            <button id="sub" name="addAlert" value="addAlert">Add Alert</button>
            <script type="text/javascript">
                $(document).ready(function() {
                $("#committeeid-input").tokenInput("http://www.orestarjunkie.com/list.php");
            });
            </script>
        </form>
        <span id="result"></span>
    </div>

这是js

$("#sub").click( function() {
 $.post( $("#alertForm").attr("action"), 
     $("#alertForm :input").serializeArray(), 
     function(info){ $("#result").html(info); 
     return false;
});
});

$("#alertForm").submit( function() { event.preventDefault(); });

我试过返回false,但是我读过的所有内容都说已经折旧并使用了preventDefault。

标记

1 个答案:

答案 0 :(得分:0)

如果不测试我的想法,那就是按钮上有一个点击处理程序。这最终会冒泡并导致提交事件。您还添加了另一个提交事件处理程序,在提交时将不执行任何操作。我认为你需要做的是阻止你的点击事件冒泡,导致提交。

$("#sub").click( function(event) {
  $.post($("#alertForm").attr("action"), 
         $("#alertForm :input").serializeArray(), 
         function(info){ 
           $("#result").html(info); 
           return false;
         });
  event.preventDefault();
});

忘掉第二个事件,它什么都不做。