web-dev-qa-db-fra.com

Activer/Désactiver le bouton d'envoi si la case à cocher est cochée/décochée?

Comment activer le bouton d'envoi dans mon formulaire HTML et désactiver si la case à cocher a été désactivée?

Quel est le problème avec ce code?

EnableSubmit = function(val)
{
    var sbmt = document.getElementById("Accept");

    if (val.checked == true)
    {
        sbmt.disabled = false;
    }
    else
    {
        sbmt.disabled = true;
    }
}                       

La case à cocher

<td width="30%">Do you accept Terms of Service agreement?</td>
<td width="10px" style="min-width: 10px"></td>
<td width="70%">
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit"> I agree to Terms of Service agreement.
</td>
14
HelpNeeder

Changez votre HTML en ceci:

<td width="30%">Do you accept Terms of Service agreement?</td>
<td width="10px" style="min-width: 10px"></td>
<td width="70%">
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit(this)"> I agree to Terms of Service agreement.
</td>

Raison cela ne fonctionne pas: vous ne passez rien à votre fonction. En fait, comme vous n'avez pas utilisé de parenthèses avec le nom de la fonction, vous n'avez pas appelé la fonction du tout. Le passage de this dans le contexte de l'attribut d'événement HTML onclick signifie que vous passez une référence à l'objet DOM de l'élément, ce qui vous donne accès à sa propriété checked.

14

Vous devez inclure les paramètres: onClick="EnableSubmit()"

 <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit()"> I agree to Terms of Service agreement.
3
RyanS

D'abord si la condition vérifie si la bascule est basculée vers le côté souhaité. La condition peut être modifiée selon les besoins. La dernière opération consiste à rendre le bouton bascule gris.

 if(!$('#togglehk').is(":checked"))
                    {
                        $('#togglehk').click();
                    }
  jQuery('#togglehk').attr("disabled", true);
  jQuery('#togglehk').prop("disabled",true);

  jQuery('#togglehk').next(".slider").css("backgroundcolor","#B3B3B3");
0
shubhranshu