2012-04-25 12 views
1

クラス名がの4つのdivがあります.sリストです。ユーザがdivのいずれかをクリックすると。選択されたがdivに適用されます。ボタンをクリックしながら、jqueryクラスを持つ要素を選択するhasClass

は、私は何をしようとしていることは、これらすべてのdivをチェックし、それらのいずれかが他のフォームを送信を.selectedクラスを、持っている場合はdiv要素のどれもがが.selectedクラスを持っていない場合でありますにエラーメッセージが表示されます。

問題: 初めてのことですが、ボタンをクリックするとエラーメッセージが表示され、divに既にクラスが選択されているときにフォームが送信されます。

$("#pp-btn").click(function() { 

    $(".s-list").each(function (i) { 
     if(!$(this).hasClass('selected')) 
     { 
      $("#p-msg").show(); 
     } 
     else { 

      $("#plans-form").attr('action', $(this).attr('links')); 

      $("#p-msg").hide(); 
     } 
     }); 
    }); 

divの1つに「selected」というクラスがある場合、メッセージを表示したくありません。

ヘルプしてください...

答えて

1

任意のs-list要素がselectedクラスを持っているかどうかを確認するためにjQueryのセレクタを使用します。

$('#pp-btn').click(function (e) { 

    if ($('.s-list.selected').length == 0) { 
     /* No `selected` class on any `s-list` */ 
     $('#p-msg').show(); 
    } else { 
     /* At least one `s-list` has the additional `selected` class */ 
     $('#plans-form').attr('action', $('.s-list.selected').attr('links')); 
    } 

}); 
+0

おかげで... – departedmind

0
$("#pp-btn").on('click',function() { 
    if($(".s-list.selected").length){ 
     //there are selected items 
    } else { 
     //there is none 
    } 
}); 
0

あなたはこのようにチェックすることができ:多くは、完璧に動作

if ($(".s-list.selected").length == 0) { $("#p-msg").show(); } 
else { 
    $('#plats-form').attr('action', $('.s-list.selected').attr('links')); 
    $("#p-msg").hide(); 
} 
0
$("#pp-btn").click(function() { 

     var submit = false; 

     $(".s-list").each(function (i) { 
      if($(this).hasClass('selected')) { 
      submit = true; 
      } 
     }); 

     if(submit) { 
      $("#p-msg").show(); 
     } else { 
      $("#plans-form").attr('action', $(this).attr('links')); 
      $("#p-msg").hide(); 
     } 
    }); 
関連する問題