[SOLVED] Formularelement onchange= einsetzen

Hier bekommst Du deutschsprachigen Support. Keine Fehlermeldungen oder Erweiterungswünsche bitte!
Post Reply
kmstario
Posts: 396
Joined: Thu 27. Jul 2006, 11:34
Location: Berlin
Contact:

[SOLVED] Formularelement onchange= einsetzen

Post by kmstario »

Hallöchen zusammen,

derzeit bastel ich mal an einem interaktiven Formular, bei dem durch eine Liste(select) bei bestimmten Optionen Felder eingeblendet werden. Nun hänge ich allerdings bei der Funktion fest. Es muss im <select.. ein Befehl

Code: Select all

onchange="setVisibility(this)"
hinein.

Lässt sich das mit Bordmitteln lösen? Ich habe schon einige Varianten probiert, komme aber nicht zum gewünschten Ergebnis :(

Grüße, Andreas
Last edited by kmstario on Wed 27. Jul 2016, 15:58, edited 1 time in total.
--------------------------------------------

Alles Gelingen hat sein Geheimnis, alles Mißlingen seine Gründe.
PHPWCMS ist einfach nur großartig!
User avatar
Oliver Georgi
Site Admin
Posts: 9892
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Formularelement onchange= einsetzen

Post by Oliver Georgi »

Nicht nötig. Inline JavaScript Attribute sind in Zeiten von verfügbaren Events unnötig.

Mit jQuery:

Code: Select all

var setVisibility = function(){
    var $this = $(this);
    // do whatever you want to do
};
$('#selectid').on('change', setVisibility);
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
User avatar
Oliver Georgi
Site Admin
Posts: 9892
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: Formularelement onchange= einsetzen

Post by Oliver Georgi »

Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
kmstario
Posts: 396
Joined: Thu 27. Jul 2006, 11:34
Location: Berlin
Contact:

Re: Formularelement onchange= einsetzen

Post by kmstario »

Hallöchen nochmal,

vielen dank für den Anstoss :wink: . Hatte schon etwas rumprobiert und es nun endlich hinbekommen.

Und zwar so (falls es mal jemand braucht):

Code: Select all

$(function () {
     $('#messageBox').hide();
     $('#select-id').change(function () {
         $('#messageBox').hide();
         if (this.options[this.selectedIndex].value == 'optiontext') {
             $('#messageBox').show();
         }
     });
 });

Vg Andreas
--------------------------------------------

Alles Gelingen hat sein Geheimnis, alles Mißlingen seine Gründe.
PHPWCMS ist einfach nur großartig!
User avatar
Oliver Georgi
Site Admin
Posts: 9892
Joined: Fri 3. Oct 2003, 22:22
Contact:

Re: [SOLVED] Formularelement onchange= einsetzen

Post by Oliver Georgi »

Unbedingt vereinfachen!

Code: Select all

$(function() {
    var $messagebox = $('#messageBox');
    if($messagebox.length) {
        $messagebox.hide(); // gib style="display:none" mit, dann ist das überflüssig
        $('#select-id').change(function() {
            if(this.options[this.selectedIndex].value === 'optiontext') {
                $messagebox.show();
            } else {
                $messagebox.hide();
            }
        });
    }
 });
Oliver Georgi | phpwcms Developer | GitHub | LinkedIn | Систрон
Post Reply