2013-07-15 72 views
0

我有一小段代碼想用作jQuery對話框的條件。非常簡單的情況下,如果複選框被選中,啓用按鈕,如果沒有,禁用它。下面的代碼會禁用按鈕,但在檢查任何複選框時不會啓用它。如果選中了一個或多個複選框,則切換啓用/禁用輸入按鈕

我嘗試了多種變化,我無法得到這個工作在我的代碼(幾個工作罰款小提琴)。非常感謝您的幫助。

JS片斷

if (button.text() == "Apply") { 
    if ($("selectLocation").is(':checked')) 
     button.enabled(true); // checked 
    else 
     button.enabled(false); // unchecked 
} 

HTML

<input type="checkbox" name="selectLocation" /> 

回答

1

你將不得不使用jQuery的.prop()來解決這一

if (button.text() == "Apply"){ 
    if ($("selectLocation").is(':checked')){ 
     button.prop('disabled', false); 
    } 
    else{ 
     button.prop('disabled', true); 
    } 
} 

我從來沒有能夠得到.attr()來爲這種情況的工作

+0

非常感謝一個好的解決方案 – mynameisneo

+0

很高興能幫到你! – MonkeyZeus

0

嘗試這樣的:

$("input[name=selectLocation]") 

它不工作,因爲你是用標籤選擇元素210不與name元素selectLocation

0

如果按鈕是一個jQuery元素:

button.attr("disabled", "disabled"); //to disable it 
button.removeAttr("disabled"); //to reenable it 

在你的代碼,它應該是:

if (button.text() == "Apply") { 
    if ($("selectLocation").is(':checked')) 
     button.removeAttr("disabled"); //to reenable it 
    else 
     button.attr("disabled", "disabled"); 
} 

的選擇$("input[name=selectLocation]")應該工作

0

不知道如果jQuery要選擇這樣的名稱,請添加一個ID並更改選擇器。

if (button.text() == "Apply") { 
    if ($("#selectLocation").is(':checked')) 
     button.removeAttr("disabled"); 
    else 
     button.attr("disabled", "disabled"); 
} 

<input id="selectLocation" type="checkbox" name="selectLocation" /> 
相關問題