jQuery submit() - 表单仍然发送

时间:2012-06-06 10:47:53

标签: javascript jquery submit

我有这个

$("#formNewsletter").submit(function(){

                        return false;
                    })

它按预期工作 - 表单未提交。 当我写这个时,似乎它返回true(表单正在发送)

$("#formNewsletter").submit(function(){
                        if($("#newsletterSelSpec div").length() > 0)
                        {
                            alert("Good");
                        }
                        else
                        {
                            alert("Please add at least one speciality!");
                        }
                        return false;
                    })

我想了解为什么会发生这种情况以及如何使其发挥作用。

谢谢!

2 个答案:

答案 0 :(得分:2)

属性长度不是方法。

使用$("#newsletterSelSpec div").length > 0


您可以使用preventDefault()来阻止事件的默认行为.witch是第一个参数中的方法。 (event)。

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

    if($("#newsletterSelSpec div").length() > 0)
        {
            alert("Good");
        }
    else
        {
            alert("Please add at least one speciality!");
        }
});

不确定,但问题可能是警报会停止脚本进程而不是提交事件。

答案 1 :(得分:1)

$("#formNewsletter").submit(function(e) {

    if ($("#newsletterSelSpec div").length > 0) {
        alert("Good");
    } else {
        e.preventDefault();  // prevent the form submission
        alert("Please add at least one speciality!");
    }
});

注意

您使用的是.length(),但它应该只是.length,这意味着

$("#newsletterSelSpec div").length