2013-04-18 180 views
0

基本上我試圖做的是在標題中不言自明。這裏的代碼使下拉/選擇,因此它可以通過客戶端可以改變一個片段,但更改後它不會禁用:更改禁用選擇(下拉列表)基於另一個選擇(下拉列表)值

function setLocVals(passedVal) { 

       $('#DropDownList1').removeAttr("disabled");      
       $('#DropDownList1').val(passedVal); 
       $('#DropDownList1'').attr("disabled", "disabled"); 
} 

這甚至可能嗎?還是我看完全是錯誤的方式? 我可以更改爲文本框,但這是包含美國各州的下拉菜單。如果有用戶的記錄,則該選擇對用戶是有限制的,如果沒有記錄存在,則他們可以選擇。

+0

當你'removeAttr()'屬性是不那裏更長。相反,你要使用'.prop('disabled',false)'或'.prop('disabled',true);' – Ohgodwhy

+0

很確定你不需要混淆'disabled'屬性來改變通過JS選擇選項。 –

+0

可能的重複與http://stackoverflow.com/questions/7703241/enable-disable-a-dropdownbox-in-jquery – griegs

回答

0

只需在必須禁用時添加一個條件。看到這個fiddle

使用這種方法。

首先在選項中設置值。

然後檢索選項的當前值,並檢查它是否被設置爲比你通過再一個把條件禁用別的不

function setLocVals(passedVal) { 


      $('#DropDownList1').val(passedVal); 

      var value = $('#DropDownList1').val(); 
      if(value == passedVal){ 
        $('#DropDownList1').attr("disabled", "disabled"); 
       } 
     } 
+0

無法解決您無法在控制/元素處於禁用狀態時從客戶端更改下拉列表的值這一事實。 Dropdownlist從禁用狀態開始,值將被更改以便啓用,然後在更改值後再次禁用。 – Andrew

+0

但正如你所說,如果存在一個值,它必須被禁用,以便用戶不能更改該值,如果該值不存在,則應該啓用它以便用戶更改 – NullPointerException

+0

不,我可能誤解了這一點。我只是在「有記錄」的情況下工作。我規定了這兩種情況,因爲我不希望有人回答「嗯,爲什麼不只是使用文本框?」有兩個下拉菜單啓用,一個禁用 - 我需要根據第一個下拉選項更改第二個下拉菜單,並且下拉菜單需要保持禁用狀態。我希望更清楚。我很抱歉在原文中混淆了這個問題。 – Andrew

相關問題