2016-10-06 2 views
0

ich ein Formular mit zwei Eingängen bekommen haben (es ist ein PHP-Skript dahinter):jQuery Aufruf bind nach Laden der Seite

<select id="select1"> 
    <option>One</option> 
    <option>Two</option> 
</select> 
<input type="text" id="text1" disabled="disabled" /> 

Das PHP-Skript eine Datenbank schauen und „One“ markieren oder "Zwei" mit dem Attribut selected="selected".

Wenn "Eins" ausgewählt ist, möchte ich das deaktivierte Textfeld aktivieren. Wenn ein anderer Eintrag ausgewählt ist (in diesem Beispiel "Zwei"), sollte das Textfeld deaktiviert werden. Ich schrieb diesen jQuery-Code:

<script type = "text/javascript"> 
    $("#select1").bind('change paste keyup', function() { 
    if (this.value == 'One') { 
     $("#text1").prop('disabled', false); 
    } else { 
     $("#text1").prop('disabled', true); 
    } 
    }); 
</script> 

Mein Problem: Wenn ich die Seite besuchen und "One" ist vorgewählt, das Textfeld ist deaktiviert. Ich muss wieder "Zwei" und "Eins" wählen. Danach ist das Textfeld aktiviert. Ich möchte beim Laden der Seite prüfen, welches Element ausgewählt ist. Ich habe versucht, eine Menge mit einer Änderung wie diese Auslösung, aber es lief nicht:

$(window).bind("load", function() { 
    $("#select1").trigger('change paste keyup'); 
}); 

Ich weiß, dass ich wie .on oder .change denkt verwenden könnte, aber ich will, es zu tun mit .bind.

Wie kann ich .bind beim Laden der Seite aufrufen?

+0

Sie für 'default item' ausgewählt suchen sind? Wenn richtig, hier gehts: http://StackOverflow.com/Questions/3518002/How-Can-Iset-the-default-value-for-an-HTML-Select-Element –

+0

PS: 'if (this. Wert == 'Eins') { $ ("# text1"). prop ('deaktiviert', false); } else { $ ("# text1"). Prop ('deaktiviert', true); } '=> ' $ ("# text1"). Prop ('deaktiviert', (this.value! = 'One')); ' – Julian

Antwort

4

auslösen einfach das Ereignis auf Pageload

$("#select1").on('change', function() { 
    $("#text1").prop('disabled', this.value !== 'One'); 
}).trigger('change'); 
  • bind von on abgelöst wurde, und sollte nicht verwendet werden
  • ein wählen sollten keine Schlüsselereignisse haben, und kann nicht sein, eingeklebt?
  • Sie die Bedingung verwenden können direcly die Eigenschaft festlegen

FIDDLE

+0

Vielen Dank für die Antwort. Aber kannst du mir sagen, warum ich Bind nicht benutzen soll? – Pengxer

+1

Weil es durch 'on' ersetzt wird. Es gibt keinen anderen Grund als jetzt, jQuery hat 'bind' nicht entfernt, sie empfehlen nur' on'. Intern machen sie das gleiche, vorerst! – adeneo

+0

Nachdem ich '$ (function() {YOUR CODE});' hinzugefügt habe, funktionierte es wie ein Zauber, danke! – Pengxer

Verwandte Themen