Javascript Jquery取消选中用户上次选择的选项
我有一个包含服务和持续时间的多选框。如果用户选择某些服务,则会捕获其持续时间,如果持续时间超过限制,则会生成警报。如何取消选中用户上次选中的值,以便在超过限制时不会重置持续时间。以下是我的代码:Javascript Jquery取消选中用户上次选择的选项,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个包含服务和持续时间的多选框。如果用户选择某些服务,则会捕获其持续时间,如果持续时间超过限制,则会生成警报。如何取消选中用户上次选中的值,以便在超过限制时不会重置持续时间。以下是我的代码: jQuery('.check-service').click(function () { serviceselected = jQuery("input.check-service:checked").length; serviceduration = 0; 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();
}
当前未选中所有选中的值。我只想取消选中上一个选中的值。
提前感谢。您不能将上次选中的复选框存储在某个全局变量中
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");
})
请尝试以下代码:
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();
}
});
谢谢你的建议…这也是如上所述,但我选择不保存在变量中。所以我选择了上面的答案。还有一件事。如何删除此未选中属性的Css样式;jQuery(this.removeClass('classname');