停止执行某个功能?

时间:2014-03-17 12:34:00

标签: javascript jquery

提交时,我这样做:

$('#add-form').submit(function(e){
    e.preventDefault();
    if($('input[name=published]').is(':checked')) p.validateImgs();

    //stop if p.validateImgs returns false

验证Imgs功能:

p.validateImgs = function() {

    //Check Thumb
    var thumb = $('#thumb li .img-drop-zone');
    if(!thumb.has('img').length)thumb.addClass('error');

    //Check Galery
    var gallery = $('#gallery li .img-drop-zone').first();
    if(!gallery.has('img').length)gallery.addClass('error');

    //return true/false



};

如果从validateImgs返回false,如何提交,提交脚本会停止吗?

4 个答案:

答案 0 :(得分:2)

由于e.preventDefault()阻止表单提交,如何

$('#add-form').submit(function(e){

    if($('input[name=published]').is(':checked') && !p.validateImgs())
        e.preventDefault();

});

如果您想退出该功能,请使用return作为Jonathan提及的内容。

答案 1 :(得分:0)

您可以使用return statement提前退出function

由于它是有条件的,因此将if放在p.validateImgs()下作为条件的一部分:

if($('input[name=published]').is(':checked') && !p.validateImgs())
    return;

答案 2 :(得分:0)

在validateImgs中返回true或false并在提交函数中捕获响应。实施例。

$('#add-form').submit(function(e){
    e.preventDefault();
    if($('input[name=published]').is(':checked')) 
    {
        response = p.validateImgs();

        // if any error
        if(!response)
        return false; // stop function

    }

答案 3 :(得分:0)

我会使用Johan的代码,但只需添加一些修改:

$('#add-form').submit(function(e){
    if($('input[name=published]').is(':checked') && !p.validateImgs()) {
        e.preventDefault();
        return false;
    }
});

请注意"返回false"你补充说,只是要小心