jquery一次执行所有函数

时间:2014-03-25 18:45:31

标签: jquery ajax

我对jquery有一个奇怪的问题(嗯,我对jquery有点新手),但是......

我有一个表格,其中包含一些要填充的元素......好吧 在那之下(但在表格标签内)我有3个按钮:

第一

<button name="submit" id="submit">Atualizar Dados</button>

应该发送表格

第二

<button name="del" id="del">Remove nicedit instance</button>

从表单中删除nicedit实例。

3ND:

<button name="qqq" id="qqq">Q</button>

这只是对div使用淡入效果的测试。

好吧,现在我有四个功能:

$(document).ready(function(){
    $('#submit').click(function () {
            $.ajax({
            type: 'post',
                url: 'admin.php',
                data: $('form').serialize(),
                success: function (str) {
             window.location = 'test.php';
                }
              });
    e.preventDefault();
    });
        ///////////////////////////////////////////////
    $("#del").click(function(){
             txtDescr.removeInstance('LDescr');
    });

    $("#qqq").click(function(){
             $("#info").fadeIn(1500).delay(5000).fadeOut(1500);
    });
});

问题在于无论我点击什么按钮,表单都会被提交....即使qqq按钮似乎也提交了表单。我已经尝试了几十种组合,我已经用谷歌搜索了,但我找不到答案。拜托,有人可以告诉我我做错了吗?

谢谢!!!

3 个答案:

答案 0 :(得分:2)

这是因为button元素的默认类型为submit,您可以将type属性设置为button或使用{{阻止事件的默认操作1}}事件对象的方法。

preventDefault

答案 1 :(得分:1)

默认情况下,

button元素为type="submit"。如果您希望他们不提交表单,则需要将其更改为:

<button type="button" ...

From the spec

  

缺失值默认Submit Button状态。

答案 2 :(得分:0)

button元素实际上是<input type="submit" />元素。有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button

要解决此问题,请在点击事件处理程序中添加对.preventDefault()return false(或两者)的调用,或将type="button"添加到button元素,或使用<input type="button" />代替<button>元素。