2012-04-25 27 views
1

我有四个div,类名为.s-list。当用户点击任何这些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(); 
     } 
     }); 
    }); 

我不希望邮件显示,如果任何1的div有'选择'类。

请帮助...

回答

1

使用jQuery选择,以检查是否有任何s-list元素具有selected类;

$('#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 2012-04-25 08:07:55

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(); 
     } 
    }); 
相关问题