如果条件没有通过则断开功能

时间:2011-11-24 21:13:57

标签: javascript jquery if-statement

我收到了这段代码

 $(function(){
                   $('form.register input[type=text], .search input').ToggleInputValue();
                    $('#next').click(function() {
                        $('form.register input[type=text]').each(function(index) {
                            if(!$(this).hasClass('valid')){
                                $('.note').append('<p>Alla fält har inte blivit korrekt fylda</p>')
                                return false;
                            }
                        });
                      $('.register').submit();
                    });
                });

事情是我不希望表单获得提交,如果有任何字段没有有效的类,我认为返回false会这样做但它没有

3 个答案:

答案 0 :(得分:5)

正如ipr101所提到的,return false不会退出该功能。实现结果的更有效方法如下所示。使用:not(.valid)检查是否存在没有类valid的任何输入元素。

 $(function(){
   $('form.register input[type=text], .search input').ToggleInputValue();
    $('#next').click(function() {
        // If there's at least one element without class valid
        if($('form.register input[type=text]:not(.valid)').length > 0) {
           $('.note').append('<p>Alla fält har inte blivit korrekt fylda</p>')
        }
        else { //All elements are valid, submit
           $('.register').submit();
        }
    });
});

答案 1 :(得分:3)

return false;只会退出each循环,而不会退出整个函数。如果找到包含无效类的字段,则可以将布尔值设置为false,如果值为true,则只提交表单。

答案 2 :(得分:0)

此外,你可以试试这个:

$(function(){
    $('form.register input[type=text], .search input').ToggleInputValue();
        $('#next').click(function() {
            var zero = 0;
            $('form.register input[type=text]').each(function(index) {
                if(!$(this).hasClass('valid')){
                    $('.note').append('<p>Alla fält har inte blivit korrekt fylda</p>')
                    zero++;
                }
            });
            if(0 == zero) {
                $('.register').submit();
            } else {
                // return false; /* if you still need */ 
            }
    });
});