我有兩個下拉列表。每個包含相同的時間列表。當選擇列表「A」中的時間時,我想在列表「B」中禁用相同的以及之前的所有時間。JQuery根據另一個選項禁用下拉選項
List A List B
------ ------
06:00 AM 06:00 AM
07:00 AM 07:00 AM
08:00 AM 08:00 AM
... ...
所以,當有人點擊發言權名單「A」,到時候和以前列表「B」上午07:00將被禁用。
$('#listA').on('change', function(){
...
});
用於經濟編碼的+1。
UPDATE
最後我做這裏面捕捉這兩種方法:
function setDisableOptions(from, to) {
$(document.body).on('change', '[name="' + from + '"]', function() {
var s = $(this).prop('selectedIndex') + 1;
var l = $('[name="' + from + '"] option').length;
$(this).find('option').prop('disabled', false);
for (var i = 0; i <= l; i++) {
if (i <= s) {
$('[name="' + to + '"] > option:nth-child(' + i + ')').attr('disabled', 'disabled');
} else {
$('[name="' + to + '"] > option:nth-child(' + i + ')').removeAttr('disabled');
}
}
});
$(document.body).on('change', '[name="' + to + '"]', function() {
var s = $(this).prop('selectedIndex') + 1;
var l = $('[name="' + to + '"] option').length;
$(this).find('option').prop('disabled', false);
for (var i = 0; i <= l; i++) {
if (i >= s) {
$('[name="' + from + '"] > option:nth-child(' + i + ')').attr('disabled', 'disabled');
} else {
$('[name="' + from + '"] > option:nth-child(' + i + ')').removeAttr('disabled');
}
}
});
};
被稱爲像:
setDisableOptions('fromInputName', 'toInputName');
我需要在e.sibling參考返回正確的索引值。我不認爲this.index()在這裏工作。 – cheborneck