条件が満たされない場合、ブレーク機能

私はこのコードを手に入れた

 $(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('

Alla fält har inte blivit korrekt fylda

') return false; } }); $('.register').submit(); }); });

物事は、私はフォームが妥当なクラスを持っていない任意のフィールドがある場合は提出する必要はありません、私は偽を返すと思ったが、それはdoesnt

1

3 答え

ipr101が述べたように、 return false は関数を終了しません。結果を達成するためのより効率的な方法を以下に示します。 :not(無効)を使用して、 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('

Alla fält har inte blivit korrekt fylda

') } else { //All elements are valid, submit $('.register').submit(); } }); });
5
追加された
私はあなたのソリューションがよかったし、より良い私の好きだった
追加された 著者 Breezer,

return false; will only exit the each loop, not the entire function. You could set a boolean value to false if you found a field with an invalid class and only submit the form if the value was true.

3
追加された
だから私はどのように関数全体を終了するのですか?出口;?ブレーク;? yapp exit;それはした:Pは、javascriptが終了していたことを知っていない...それは壊れていたと偽を返すと思った:P
追加された 著者 Breezer,

さらに、これを試すことができます:

$(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('

Alla fält har inte blivit korrekt fylda

') zero++; } }); if(0 == zero) { $('.register').submit(); } else { //return false; /* if you still need */ } }); });
0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript