2017-02-21 2 views
1

Ich habe eine Schaltfläche und ein Kontrollkästchen (Nutzungsbedingungen) auf meiner Seite.
Die Schaltfläche sollte deaktiviert werden, wenn das Kontrollkästchen nicht aktiviert ist.checkbox change nicht ausgelöst beim Laden der Seite

Ich möchte die Situation in jeder Last zurücksetzen. (zuerst laden oder mit back btn oder etc) der Reset-Zustand ist: Checkbox sollte nicht aktiviert sein, und BTN ist deaktiviert. Aber die Funktion wird nur aufgerufen, wenn ich auf das Kontrollkästchen klicke, und nicht zur Ladezeit. Update: Ich habe auch .trigger('change') getestet. Es did't arbeiten zu

$(function() { 
 
    $('#termsOfUse').removeAttr('checked'); 
 
    $('#termsOfUse').change(); 
 
    $('#termsOfUse').change(function() { 
 
    if ($(this).is(":checked")) { 
 
     $('#createBtn').prop('disabled', false); 
 
    } else { 
 
     $('#createBtn').prop('disabled', true); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="row"> 
 
    <input id="termsOfUse" type="checkbox" /> 
 
    <label for="termsOfUse" style="display: inline;"> 
 
        <span><a href="/rules">rules</a></span> I am agree with</label> 
 
</div> 
 
<div class="create"> 
 
    <input id="createBtn" type="button" value="create" class="btn btn-default btn-success" 
 
    onclick="location.href = '@Url.Action("Create","NewOne ")'" /> 
 
</div>

+0

Verwendung '$ (document) .ready (function() {IHR CODE})' –

+1

Verschieben $ (‘ #termsOfUse '). change(); nach der Event-Handler-Zuweisung – mplungjan

+1

@amirhoseeinhmadi OP macht das schon –

Antwort

3

Sie rufen die .change bevor Sie zuweisen.

$(function() { 
    $('#termsOfUse').prop('checked',false); 
    $('#termsOfUse').change(function() { 
    $('#createBtn').prop('disabled', !this.checked); 
    }).change(); // execute at load 
}); 

können Sie setzen auch

<script> 
    $('#termsOfUse').prop('checked',false); 
    $('#termsOfUse').change(function() { 
    $('#createBtn').prop('disabled', !this.checked); 
    }).change(); // execute at load 
</script> 
</body> 

am Ende des Dokuments

+0

Aber warum funktioniert es nicht, wenn ich zurück btn verwende? – Elnaz

+0

Siehe Aktualisierung ..... – mplungjan

Verwandte Themen