2013-08-07 91 views
16

請我需要一個腳本,可以用HTML代碼工作波紋管禁用/啓用按鈕時一個複選框被選中或取消選中,如何禁用/啓用一個按鈕,如果選中複選框

<input type="submit" name="sendNewSms" class="inputButton" id="sendNewSms" value=" Send " />

請朋友們,我不是說按鈕被禁用時,而是相反的方式。

回答

5

brbcoding已經能夠幫助我的適當的編碼,我需要,這裏是它

HTML

<input type="checkbox" id="checkme"/> 
    <input type="submit" name="sendNewSms" class="inputButton" disabled="disabled" id="sendNewSms" value=" Send " /> 

的Javascript

var checker = document.getElementById('checkme'); 
var sendbtn = document.getElementById('sendNewSms'); 
// when unchecked or checked, run the function 
checker.onchange = function(){ 
if(this.checked){ 
    sendbtn.disabled = false; 
} else { 
    sendbtn.disabled = true; 
} 

} 
+0

它是禁用和不enbaling – SAR

26

您可以使用複選框onchange事件基於checked值啓用/禁用按鈕

<input type="submit" name="sendNewSms" class="inputButton" id="sendNewSms" value=" Send " /> 

<input type="checkbox" onchange="document.getElementById('sendNewSms').disabled = !this.checked;" /> 
+0

感謝,但我從來不會用其他方式來表達,上面的代碼在選中時禁用了按鈕,但是我希望按鈕被禁用,然後在複選框被選中時啓用 – Chidi

+0

@Chidi更新了代碼。你簡單地需要添加'!' - '不是'運營商 –

+0

這比其他解決方案提供的方式更好 – Rishabh

14

HTML

<input type="checkbox" id="checkme"/><input type="submit" name="sendNewSms" class="inputButton" id="sendNewSms" value=" Send " /> 

JS

var checker = document.getElementById('checkme'); 
var sendbtn = document.getElementById('sendNewSms'); 
checker.onchange = function() { 
    sendbtn.disabled = !!this.checked; 
}; 

DEMO

+1

顯然,只需將'sendbtn.disabled = false'切換到'sendbtn.disabled = true',反之亦然。如果您希望在第一次訪問時將其禁用,則可以將禁用添加到按鈕以開始。 – brbcoding

+0

謝謝朋友,現在工作正常,感謝您的幫助。 – Chidi

+0

請記住,您還需要檢查此服務器。它只需要從devtools中的[this line](http://i.imgur.com/m6n4vUl.png)中刪除'disabled',然後再次啓用該按鈕。 – brbcoding

9

你將不得不使用JavaScript或JQuery框架來做到這一點。她是使用jQuery

爲例
$('#toggle').click(function() { 
     //check if checkbox is checked 
     if ($(this).is(':checked')) { 

      $('#sendNewSms').removeAttr('disabled'); //enable input 

     } else { 
      $('#sendNewSms').attr('disabled', true); //disable input 
     } 
    }); 

DEMO:http://jsfiddle.net/T6hvz/

3

這裏是禁用和啓用提交按鈕,一個乾淨的方式:

<input type="submit" name="sendNewSms" class="inputButton" id="sendNewSms" value=" Send " /> 
<input type="checkbox" id="disableBtn" /> 

var submit = document.getElementById('sendNewSms'), 
    checkbox = document.getElementById('disableBtn'), 
    disableSubmit = function(e) { 
     submit.disabled = this.checked 
    }; 

checkbox.addEventListener('change', disableSubmit); 

這裏是它在行動提琴: http://jsfiddle.net/sYNj7/

1

我推薦使用jQuery,因爲它會爲您完成所有繁重的工作。代碼相當簡單。

$('input:checkbox').click(function() { 
    if ($(this).is(':checked')) { 
    $('#sendNewSms').click(function() { 
     return false; 
    }); 
    } else { 
    $('#sendNewSms').unbind('click'); 
    } 
}); 

訣竅是重寫'click'事件並有效地禁用它。你也可以使用一些CSS魔術來使它看起來「被禁用」。這裏是JavaScript中的代碼,以防你需要它。這並不完美,但它可以得到重點。

var clickEvent = function() { 
    return false; 
}; 
document.getElementById('#checkbox').onclick(function() { 
    if (document.getElementById('#checkbox').checked) { 
    document 
     .getElementById('#sendNewSms') 
     .onclick(clickEvent); 
    } else { 
    document 
     .getElementById('#sendNewSms') 
     .removeEventListener('click', clickEvent, false); 
    } 
}); 
相關問題