2011-01-15 5 views
2

Ich möchte ein Div anzeigen, wenn der Wert einer Eingabe == 'CP'.jQuery: Wenn der Wert ist wahr ohne Benutzeraktion

Gerade jetzt dieses ist mein Code:

$(".register-type").change(function(){ 
    var value = $(this).val(); 
    if(value == 'CP'){ 
    $('.cp-show').show(); 

Dies funktioniert gut, wenn sie den Eingang zu ändern, aber wenn die Dinge falsch und die Seite neu geladen validiert bekommen, ist dieser Eingang noch ‚CP‘, aber die div doesn 't show ...

Gibt es eine Möglichkeit, dies zu korrigieren, so dass jquery überprüft, ob dies beim Laden der Seite eingestellt ist?

Antwort

1

Verwenden Sie document.ready für die Überprüfung bei Ladezeit.

var register = $(".register-type")[0]; 

function show_cp() { 
    if(register.value == 'CP') { 
     $('.cp-show').show(); 
    } 
} 

reg_type.change(show_cp); // when the input changes 
$(document).ready(show_cp); // when the page is loaded 
+0

$ (this) nicht korrekt sein, wenn aufgerufen von .ready() – Dolbz

+0

@Dolbz - Ja, behoben. – galambalazs

+0

Kürzere Version: 'var chkVal = Funktion (e) {if ($ (this) .val() == 'CP') $ ('. Cp-show'). Show();} $ ('. Register- type '). change (chkVal) .each (chkVal); ' –

0

Ja, fügen Sie Ihr Dokument bereit 'Funktion:

$(document).ready(function() { 
    if($(".register-type").val() == 'CP'){ 
     $('.cp-show').show(); 
    } 
}); 
1

Warum es nicht das erste Mal Auslösung ..

$(".register-type") 
    .change(function(){ 
     var value = this.value; // changeed the .val() since it is not needed here. 
     if(value == 'CP'){ 
     $('.cp-show').show(); 
    }) 
    .trigger('change'); 
+0

Ich habe '' TRIGGER() 'nie zuvor gesehen? Würde es dir etwas ausmachen, es zu erklären? –

+0

* 'trigger()': Führt alle Handler und Verhaltensweisen aus, die den übereinstimmenden Elementen für den angegebenen Ereignistyp zugeordnet sind. *. Gute Idee, Gaby! +1 – galambalazs

+0

@Kevin, es ist eine jQuery-Methode (mehr unter http://api.jquery.com/trigger/). Es ruft (* triggers *) das Ereignis auf, das Sie für die ausgewählten Elemente bereitstellen. –

Verwandte Themen