2013-03-14 56 views
1

我有一个多选择框包含的服务和持续时间。如果用户选择了,那么有些服务其持续时间被捕获,如果持续时间超过限额则警报是我generated.How可以取消由用户最后的检查值,使得持续时间不重置如果超过limit.here是我的代码:jQuery的取消选中用户最后选择的选项

jQuery('.check-service').click(function() { 

    serviceselected = jQuery("input.check-service:checked").length; 
    serviceduration = 0; 

    jQuery('input.check-service:checked').each(function() { 

     serviceduration = parseInt(jQuery(this).val()) + parseInt(serviceduration); 
     if (selectvalues == '') { 
      selectvalues = jQuery(this).attr('title'); 
      serviceids = jQuery(this).attr('id'); 
     } else { 
      selectvalues = selectvalues + "," + jQuery(this).attr('title'); 
      serviceids = serviceids + ", " + jQuery(this).attr('id'); 
     } 

    }); 

    if (serviceduration >= '600') { 
     alert("Selected Service is more than available time slot."); 
     jQuery('input.check-service').attr('checked', false); 
     console.log(); 


    } 

目前其选中所有选中的valued.I只是想取消前面的最后一个选择的值。 在此先感谢。

回答

1

试试下面的代码:

jQuery('#CheckboxID').click(function(){  //instead of class use id 
    serviceselected = jQuery("input.check-service:checked").length; 
    serviceduration = 0; 
    jQuery('input.check-service:checked').each(function() { 
     serviceduration = parseInt(jQuery(this).val()) + parseInt(serviceduration); 
     if(selectvalues == '') { 
      selectvalues = jQuery(this).attr('title'); 
      serviceids = jQuery(this).attr('id'); 
     } 
     else { 
      selectvalues = selectvalues + "," + jQuery(this).attr('title');   
      serviceids = serviceids + ", " + jQuery(this).attr('id'); 
     } 

    }); 
    if (serviceduration >= '600') { 
     alert("Selected Service is more than available time slot."); 
     jQuery(this).attr('checked', false); 
     console.log(); 
    } 
}); 
+0

谢谢你...现在它的工作。你拯救我整整一天。 – 2013-03-14 09:18:17

1

你不能最后一次选择的复选框店在一些全局变量。

var $lastChecked; 

$(".check-service").on("change", function() { 
    if ($(this).attr("checked") == "checked") { 
     lastChecked = $(this); 
    } 
    //your logic 
    //... 
    //now when you have to uncheck: 
    $lastChecked.removeAttr("checked"); 
}) 
+0

谢谢你们的建议......这也为上述工作,但我选择不variable.So救我选择了上面的回答。 还有一件事。我怎样才能删除这种未经检查的属性的Css风格。 – 2013-03-14 09:27:36

+0

Sudhanshu用于删除的CSS增加一个线的jQuery下(本).attr( '检查',假); jQuery的(本).removeClass( '类名'); – Amit 2013-03-15 07:48:15

相关问题