我正在尝试获取具有特定类属性的选中复选框列表,并将它们的值放入数组中。我想用它来启用/禁用选择菜单。到目前为止,我有以下内容,这似乎对我不起作用:
<select name="inboxSelect" id="inboxSelect" class="selectDisabledSwitch" data-trigger="selectTrigger" disabled="disabled">
<option value="">With selected</option>
<option value="1">Archive</option>
<option value="2">Mark as completed</option>
</select>
<input type="checkbox" name="inbox-1" id="inbox-1" value="1" class="selectTrigger" />
<input type="checkbox" name="inbox-2" id="inbox-2" value="2" class="selectTrigger" />
<input type="checkbox" name="inbox-3" id="inbox-3" value="3" class="selectTrigger" />
和 javascript / jquery:
var frontObject = {
getCheckboxCheckedArray : function(objClass) {
var thisArray = $('input:checkbox:checked.' + objClass).map(function () {
return this.value;
}).get();
return thisArray;
},
selectDisabledSwitch : function(obj) {
if (obj.length > 0) {
var thisObj = $(this);
var thisTrigger = thisObj.attr('data-trigger');
var thisValues = frontObject.getCheckboxCheckedArray(thisTrigger);
frontObject.disableMenu(thisObj, thisValues);
$('.' + thisTrigger).live('change', function() {
var thisValues = frontObject.getCheckboxCheckedArray(thisTrigger);
frontObject.disableMenu(thisObj, thisValues);
});
}
},
disableMenu : function(thisObj, thisValues) {
if (thisValues.length > 0) {
thisObj.attr('disabled', false);
} else {
thisObj.attr('disabled', 'disabled');
}
}
};
$(function() {
frontObject.selectDisabledSwitch($('.selectDisabledSwitch'));
});
抱歉 - 只是为了澄清 - 如果没有选中具有特定类的复选框,我希望禁用选择,并在至少选中一个时删除禁用属性。