Bruzzler: Nach Select Auswahl Button aktivieren

Hi zusammen,

ich hab ein Selectfeld, nachdem bei Auswahl einer Option der Submit Button von deaktiviert auf aktiviert wechseln soll. Dummerweise hat das selectfeld schon ein anderes onchange-Event. Gibts noch eine andere Möglichkeit, das zu realisieren?
Danke und Grüße

  1. Dummerweise hat das selectfeld schon ein anderes onchange-Event.

    weise onchange eine Funktion zu, die sowohl das eine als auch das andere tut

    1. weise onchange eine Funktion zu, die sowohl das eine als auch das andere tut

      Hmm, die eine Onchange wird dynamisch von Virtuemart generiert, das will ich nicht wirklich umschreiben..andere möglichkeiten gibts nicht?

      1. [latex]Mae  govannen![/latex]

        weise onchange eine Funktion zu, die sowohl das eine als auch das andere tut

        Hmm, die eine Onchange wird dynamisch von Virtuemart generiert, das will ich nicht wirklich umschreiben..andere möglichkeiten gibts nicht?

        Per addEvent() oder ähnlich aufgebauten Helferfunktionen, die es massenhaft im Netz gibt, kannst du problemlos mehrere Events nutzen.

        Stur lächeln und winken, Männer!
        Kai

        --
        Dank Hixies Idiotenbande geschieht grade eben wieder ein Umdenken
        in Richtung "Mess up the Web".(suit)
        SelfHTML-Forum-Stylesheet
    2. Dummerweise hat das selectfeld schon ein anderes onchange-Event.

      weise onchange eine Funktion zu, die sowohl das eine als auch das andere tut

      -->
      so sieht das in Virtuemart aus:

        
      if( VM_CONTENT_PLUGINS_ENABLE == '0' ) {  
      $html .= "<select class=\"inputbox\" onchange=\"var id = $('product_id_field')[selectedIndex].value; if(id != '') { document.location = '" . $mm_action_url . "index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=$flypage&amp;Itemid=$Itemid&amp;category_id=$category_id&amp;product_id=' + id; }\" id=\"product_id_field\" name=\"prod_id[]\">\n" ;  
      } else {  
      $html .= "<select class=\"inputbox\" onchange=\"var id = $('product_id_field')[selectedIndex].value; if(id != '') { loadNewPage( 'vmMainPage', '" . $mm_action_url . "index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=$flypage&amp;Itemid=$Itemid&amp;category_id=$category_id&amp;product_id=' + id ); }\" id=\"product_id_field\" name=\"prod_id[]\">\n" ;  
      
      

      Vielleicht kann mir wer helfen, das in ne Funktion zu packen?

      1. Moin,

        Dummerweise hat das selectfeld schon ein anderes onchange-Event.

        weise onchange eine Funktion zu, die sowohl das eine als auch das andere tut

        -->
        so sieht das in Virtuemart aus:

        if( VM_CONTENT_PLUGINS_ENABLE == '0' ) {
        $html .= "<select class="inputbox" onchange="var id = $('product_id_field')[selectedIndex].value; if(id != '') { document.location = '" . $mm_action_url . "index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=$flypage&amp;Itemid=$Itemid&amp;category_id=$category_id&amp;product_id=' + id; }" id="product_id_field" name="prod_id[]">\n" ;
        } else {
        $html .= "<select class="inputbox" onchange="var id = $('product_id_field')[selectedIndex].value; if(id != '') { loadNewPage( 'vmMainPage', '" . $mm_action_url . "index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=$flypage&amp;Itemid=$Itemid&amp;category_id=$category_id&amp;product_id=' + id ); }" id="product_id_field" name="prod_id[]">\n" ;

          
        In Zukunft bei clientseitigen Problemen nur den generierten Code posten!  
        Du siehst in dem Code doch das onchange-Attribut. Dort kannst du doch soviel (z.B. Funktionsaufrufe) dazuschreiben, wie du lustig bist, oder?  
          
        Gruß,  
        Take
        
        1. Hi,

          wie meinst du das?
          Einfach so:

            
          <select name="prod_id[]" id="product_id_field" onchange="var id = $('product_id_field')[selectedIndex].value; if(id != '') { MagicZoomPlusToolVMloadNewPage( 'vmMainPage', 'http://www.stuffbeaters.de/index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;Itemid=53&amp;category_id=36&amp;product_id=' + id ); document.addtocart.addcart.disabled = (this.selectedIndex == 0 ? true : false); }" class="inputbox">  
          
          

          ?

          1. Moin,

            Hi,

            wie meinst du das?
            Einfach so:

            <select name="prod_id[]" id="product_id_field" onchange="var id = $('product_id_field')[selectedIndex].value; if(id != '') { MagicZoomPlusToolVMloadNewPage( 'vmMainPage', 'http://www.stuffbeaters.de/index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;Itemid=53&amp;category_id=36&amp;product_id=' + id ); document.addtocart.addcart.disabled = (this.selectedIndex == 0 ? true : false); }" class="inputbox">

            
            >   
            > ?  
              
            Genau, das ist der generierte Quelltext. Viel einfacher zu lesen, oder?  
            In das onchange-Attribut des Select-Feldes kannst du doch per Hand einfach deinen Funktionsaufruf noch hinten dranhängen, also:  
              
            ~~~html
              
            <select name="prod_id[]" id="product_id_field" onchange="var id = $('product_id_field')[selectedIndex].value; if(id != '') { MagicZoomPlusToolVMloadNewPage( 'vmMainPage', 'http://www.stuffbeaters.de/index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;Itemid=53&amp;category_id=36&amp;product_id=' + id ); document.addtocart.addcart.disabled = (this.selectedIndex == 0 ? true : false); } deine_funktion();" class="inputbox">  
            
            

            Dann wird erst der Virtuemart-Code ausgeführt und dann deine Funktion.

            Gruß,
            Take

            1. Hi Take,

              ja das habe ich ja versucht, aber das scheint nicht zu klappen, die Virtuemart Funktion wird ordnungsgemäß ausgeführt , aber der Button nicht aktiviert...

                
              <select name="prod_id[]" id="product_id_field" onchange="var id = $('product_id_field')[selectedIndex].value; if(id != '') { MagicZoomPlusToolVMloadNewPage( 'vmMainPage', 'http://www.stuffbeaters.de/index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;Itemid=53&amp;category_id=36&amp;product_id=' + id ); } document.addtocart.addcart.disabled = (this.selectedIndex == 0 ? true : false);" class="inputbox">  
              
              

              Komisch oder?

              1. Moin,

                Hi Take,

                ja das habe ich ja versucht, aber das scheint nicht zu klappen, die Virtuemart Funktion wird ordnungsgemäß ausgeführt , aber der Button nicht aktiviert...

                <select name="prod_id[]" id="product_id_field" onchange="var id = $('product_id_field')[selectedIndex].value; if(id != '') { MagicZoomPlusToolVMloadNewPage( 'vmMainPage', 'http://www.stuffbeaters.de/index.php?option=com_virtuemart&amp;page=shop.product_details&amp;flypage=flypage.tpl&amp;Itemid=53&amp;category_id=36&amp;product_id=' + id ); } document.addtocart.addcart.disabled = (this.selectedIndex == 0 ? true : false);" class="inputbox">

                  
                Oh. Hatte gar nicht gesehen, dass du es ja schon versucht hast... Sorry.  
                Was sagt die Fehlerkonsole? Mach mal einfach ein `alert(document.addtocart.addcart);`{:.language-javascript}. Sind da vielleicht auch eckige Klammern wegen PHP? Dann brauchst du `document.addtocart['addcart[]']`{:.language-javascript}  
                  
                
                >   
                > Komisch oder?  
                
                Gruß,  
                Take
                
                1. hI Take,

                  hab das mit dem alert probiert: Dann erscheint:
                  ObjectHTMLInputElement
                  ... Was beduetet das?

                  Danke und Grüße