2013-08-07 14 views
16

Proszę potrzebuję skrypt, który może pracować z kodem HTML poniżej, aby wyłączyć/włączyć przycisk, gdy pole wyboru jest zaznaczone lub odznaczone,Jak wyłączyć/włączyć przycisk z wyboru, jeśli zaznaczone

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

proszę kumpli nie mam na myśli przycisku, który ma być wyłączony, gdy jest zaznaczony, ale na odwrót.

Odpowiedz

5

brbcoding były w stanie mi pomóc z odpowiedniego kodowania potrzebowałem, tutaj jest on

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

jest wyłączone, a nie enbalingowe – SAR

26

Można użyć onchange wydarzeniem pole wyboru, aby włączyć/wyłączyć przycisk oparte na checked wartości

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

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

dzięki, ale nigdy nie oznacza inaczej powyższy kod wyłącza przycisk po zaznaczeniu, ale chcę, aby przycisk był wyłączony, a następnie włączony, gdy pole wyboru jest zaznaczone – Chidi

+0

@Chidi zaktualizował kod. Prosto trzeba dodać '!' - 'not' operator –

+0

działa to lepiej niż inne dostarczone rozwiązania – 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

Oczywiście po prostu przełącz 'sendbtn.disabled = false' na' sendbtn.disabled = true' lub na odwrót w razie potrzeby. Jeśli chcesz, aby była wyłączona podczas pierwszej wizyty, możesz po prostu dodać nieaktywne do przycisku, aby rozpocząć. – brbcoding

+0

dziękuję, teraz działa, dzięki za pomoc. – Chidi

+0

Pamiętaj, że musisz sprawdzić także ten serwer. Wystarczy usunąć "disabled" z [this line] (http://i.imgur.com/m6n4vUl.png) w devtools i przycisk jest ponownie włączony. – brbcoding

9

Będziesz musiał użyć JavaScript lub jQuery framework to zrobić. ona jest przykład przy użyciu 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

Oto czysty sposób, aby wyłączyć i włączyć złożyć przycisk:

<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); 

Oto skrzypce z nim w akcji: http://jsfiddle.net/sYNj7/

1

Polecam używanie jQuery, ponieważ zrobi on dla ciebie cały ciężar. Kod jest dość banalny.

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

Sztuką jest zastąpić zdarzenie "kliknięcie" i skutecznie go wyłączyć. Możesz też śledzić go za pomocą magii CSS, aby wyglądała na "wyłączona". Oto kod JavaScript w razie potrzeby. Nie jest idealny, ale ma na to rację.

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); 
    } 
}); 
Powiązane problemy