1

我試圖禁用選擇一個jQuery中的所有非有效選項.....禁用特定選項工作正常,但是當我想重新使他們,他們仍然保持禁用....我GOOGLE和tyried很多來解決這個問題,但我嘗試的非工作....jQuery Mobile的:Canot重新啓用的jQuery選擇(mobiscroll)內禁用選項

以下一些更詳細expainations。我會非常感謝任何幫助!

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選擇-卷軸內示出:enter image description here

用戶已經choosen一個任務(例如後Arbeitsbegin [eng .:工作開始])我想禁用這個選項。這工作正常。但是當我想再次啓用它時,這不起作用。以下爲點擊處理程序的代碼,則mobiscroll,滾動和切換功能(這不工作....)

點擊處理程序:

//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-滾動的ONSELECT回調函數調用)

// 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可以幫助我解決這個問題....謝謝,丹尼爾

+0

更新:使用螢火蟲顯示,該選項被禁用,並獲得重新啓用上面顯示的代碼....不幸的是,mobiscroll scroller沒有注意到(它只注意到禁用選項。 ......)任何幫助都會成爲夢想! –

+0

沒有人可以幫助我嗎? –

回答

0

您可以重新啓用所有選擇選項與

$('#opt_projects').find("option").each(function() { 
    $(this).attr("disabled", false); 
    $('#opt_projects').selectmenu("refresh", true); 
}); 

或只是值選項= 3與

$('#opt_projects').find("option").each(function() { 
    if($(this).val()== "3"){ 
     $(this).attr("disabled", false); 
     $('#opt_projects').selectmenu("refresh", true); 
    } 
}); 
相關問題