2014-12-18 51 views
0

我怎樣才能使一個id #createEditListCloseBtn一個按鈕,讓殘疾人士如果與ID #acronyms一個對話框是空的如何禁用按鈕? 我已經試過如下:如果對話框是空

if($("#acronyms").children("option:selected").length < 1) 
{ 
    $("#createEditListSaveBtn").addClass("state-btn-disabled") 
           .attr("disabled", "disabled"); 
} 
+0

你的意思是一個文本框,當你說對話框? – Zack

+0

我的意思是一個盒子的列表,如首字母縮略詞,例如 –

+0

的列表中,您可以提供您使用的是創建一個列表此框中的HTML的例子嗎?你使用的是什麼html標籤? – Zack

回答

3

您可以使用此:

$("#submit").prop("disabled", true); 
setInterval(function() { 
    if ($("#username").val().length >= 1 && $("#password").val().length >= 1) { 
     $("#submit").prop("disabled", false); 
    } else { 
     $("#submit").prop("disabled", true); 
    } 
}, 100); 

,如果他們不是「1」等於或它檢查兩個字段的值,如果是,它使提交按鈕。

FIDDLE位置:http://jsfiddle.net/nn8s2e8h/

+0

忘記道具!不錯的工作。 – dhershman

+0

或者你可以用'$替換函數的內容( 「#提交」)。託( 「禁用」,!($( 「#用戶名」)。VAL()。長度> = 1 && $(「#密碼「).val()。length> = 1));'。 –

+0

@DavidKnipe我覺得這樣會降低可讀性。有沒有理由使用它,而不是你已經在答案中的內容? – Zack

0

如果問題是,當頁面加載,那麼你需要的是一個事件處理程序的函數只運行一次:

function updateDisabledStatus() { 
    if($("#acronyms").children("option:selected").length < 1) 
    { 
     $("#createEditListSaveBtn").addClass("state-btn-disabled") 
            .attr("disabled", "disabled"); 
    } else { 
     $("#createEditListSaveBtn").removeClass("state-btn-disabled") 
            .removeAttr("disabled"); 
    } 
} 
updateDisabledStatus(); 
$("#acronyms").on('change', updateDisabledStatus); 

不像隊長西奧的回答,這並未不會浪費用戶的處理能力,每秒檢查一次狀態10次。

順便提一句,你真的需要有一個CSS類一個禁用的屬性?