Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery取消选中用户上次选择的选项_Javascript_Jquery_Checkbox - Fatal编程技术网

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');