我正在尝试禁用jquery select中的所有无效选项.....禁用特定选项工作正常,但是当我想重新启用它们时,它们仍然保持禁用状态....我已经google了并且为了解决这个问题而付出了很多努力,但我没有尝试过......
进行更详细的说明。我会非常感谢任何帮助!
jquery选择所有选项:
<select id="opt_projects" class="f-dd">
<optgroup label="Intern">
<option value="1">Arbeitsbeginn</option>
<option value="2">Pause Beginn</option>
<option value="3">Pause Ende</option>
<option value="4">Fahrzeit Start</option>
<option value="5">Fahrzeit Stop</option>
<option value="6">Feierabend</option>
</optgroup>
<optgroup label="Auftrag 123482">
<option value="20">Instandhaltungsauftrag</option>
<option value="21">Reparaturauftrag</option>
<option value="22">Wartungsauftrag</option>
<option value="23">Kalibirierungsauftrag</option>
<option value="24">Serviceauftrag</option>
<option value="25">Aufarbeitungsauftrag</option>
</optgroup>
</select>
单击特定按钮后,这些值将显示在mobiscroll选择滚动条中:
用户选择一个任务后(例如Arbeitsbegin [eng。:工作开始])我想禁用此选项。这很好用。但是当我想再次启用它时,这不起作用。遵循click-handler的代码,mobiscroll-scroller和change函数(不起作用......)
点击处理程序:
//Click-Listener für den Projekt-Change-Button
$('#btn_changeProject').click(function () {
myLogger("Project-Change-Button wurde geklickt");
$('#opt_projects').mobiscroll('show');
return false;
});
Mobiscroll-滚轮:
// Initialisieren und anhängen des scroller
$('#opt_projects').mobiscroll().select({
theme: 'android-ics',
group: true,
lang: 'de',
display: 'bottom',
mode: 'clickpick',
inputClass: 'i-txt',
label: 'Vorgangsart',
groupLabel: 'Auftrag',
headerText: function(value) {
return 'Gewählte Vorgangsart: ' + value;
},
// Nachdem ein Element selektiert wurde
onSelect: function(valueText, inst) {
// und alle Labels neu erzeugt
myLogger("Neues Projekt wurde selektiert");
changeLabels(valueText);
}
});
和不工作的更改函数(此函数由mobiscroll-scroller的onSelect-callback函数调用)
// Validierungen für die Optionsliste
function validateOptions() {
var update_options = function () {
if ($('#opt_projects option[value="3"]').prop('disabled')) {
// none of this work......
$('#opt_projects option[value="3"]').prop('disabled', false);
// $('#opt_projects option[value="3"]').removeAttr('disabled').change();
// $('#opt_projects option[value="3"]').removeAttr('disabled');
// $('#opt_projects option:eq(2)').prop('disabled', false);
// $('#opt_projects option:eq(2)').removeAttr('disabled');
} else {
// Works fine..........
$('#opt_projects option[value="3"]').prop('disabled', true);
}
};
$(update_options);
$("#opt_projects").change(update_options);
// $("#opt_projects").trigger("refresh");
// $('#opt_projects').trigger('change');
}
当enyone可以帮助我解决这个问题时会很棒....谢谢,Daniel
答案 0 :(得分:0)
您可以使用
重新启用所有选择选项$('#opt_projects').find("option").each(function() {
$(this).attr("disabled", false);
$('#opt_projects').selectmenu("refresh", true);
});
或只是带有<= p>的值= 3的选项
$('#opt_projects').find("option").each(function() {
if($(this).val()== "3" ){
$(this).attr("disabled", false);
$('#opt_projects').selectmenu("refresh", true);
}
});