jQuery禁用最后一个复选框

时间:2014-04-09 07:37:38

标签: jquery ajax checkbox click

看一下我脚本的部分内容。

这是我从PHP脚本填充的一系列复选框。渲染的HTML看起来像这样:

<input type='checkbox' value='3' id='checkbox-id-3' name='selectCityCheckbox[]' checked><label for='checkbox-id-3'>Description</label>
<input type='checkbox' value='5' id='checkbox-id-5' name='selectCityCheckbox[]' checked><label for='checkbox-id-5'>Description</label>
<input type='checkbox' value='7' id='checkbox-id-5' name='selectCityCheckbox[]'><label for='checkbox-id-7'>Description</label>

我现在需要的是禁用最后一个可用复选框并使其无法点击的功能。应该在每次单击和DOM加载时调用该函数。

一些jQuery:

var $eye = $('#eye');
var $eyeDropdown = $('#eyeDropdown');
var $checkboxes = $eyeDropdown.find(':checkbox');
var $eyeCheckedBoxes = $('#eyeDropdown :checkbox:checked');

$checkboxes.on('click', update);
function update() {
    $wrapper.html($img);
    var checkbox = $(this);
    var value = checkbox.val();
    if ($(this).is(':checked')) {
        var viewOnlineValue = 1;
    } else {
        $(this).is(':checked');
        var viewOnlineValue = 0;
    }
    $.ajax({
        /*ajax stuff*/

    });
    lockLastCheckbox();        
}

我现在正在处理一个函数,但它似乎没有从$(this).is(':checked');函数注册update()的更改,因此不会在变量中添加或删除任何内容sumChecked

function lockLastCheckbox() {
    var sumChecked = $eyeCheckedBoxes.length;
    console.log(sumChecked);
}

2 个答案:

答案 0 :(得分:0)

在其他部分使用prop() check checkbox

var viewOnlineValue;
if ($(this).is(':checked')) {
    viewOnlineValue = 1;
} else {
    $(this).prop('checked',true);
    viewOnlineValue = 0;
}

<强>替代

....
else {
    this.checked=true;
    viewOnlineValue = 0;
}

答案 1 :(得分:0)

我应该使用它。

$('input:checkbox:last').prop('disabled', true);