Einstellungen von anderem Formular übernehmen

Posted in JQuery, 31.10.2014 07:10

Hier aus einem smarty-Template genommen, das sich in einer Loop befindet ($i). Es werden die Einstellungen aus dem Form mit Id "marketingmaterial_form_0" übernommen.Alle folgenden Formulare bekommen dann _form_{$i}Debug-Ausgaben (alert, console_log) sind noch drin.

Es werden Werte aus hidden-Fields und Selectboxen übernommen und gesetzt:



  $('#preselect_{$j}').click(function(){
                    //$("marketingmaterial_form_0))
                    var values = { };
                    $('#marketingmaterial_form_0 select[name^=ve_]').each(function() {
                        values[$(this).attr('name')] = $(this).val();
                    });

                    liefertermin = $('#marketingmaterial_form_0 input[name=alt_termin]').val();
                    bestelltyp = $('#marketingmaterial_form_0 input[name=type]').val();

                    msg = "Datum von Form0 : " + liefertermin + "\n";
                    msg += "Bestelltyp von Form0 : " + bestelltyp + "\n";
                    msg += $("#alt_termin_{$j}").attr('name') + " has type : " + $("#alt_termin_{$j}").attr('type');
                    alert( msg  );

                    if ($("#alt_termin_{$j}").attr('type') == 'text') {
                        $("#alt_termin_{$j}").val(liefertermin);
                        $("#marketingmaterial_form_{$j} input[name=liefertermin]").val(['alternative']);
                        $("#marketingmaterial_form_{$j} input[name=type]").val([bestelltyp]);
                    }

                    Object.keys(values).forEach(function(key) {
                        $("#marketingmaterial_form_{$j} select[name='"+key+"'] option[value='"+values[key]+"']").attr('selected',true);
                        var str = "Die Gesamtzahl Ihrer Bestellung dieses Artikels beträgt ";
                        str += (values[key] * $("#marketingmaterial_form_{$j} select[name='"+key+"']").attr('data-ve'))  + "  Stück.";
                        $("#marketingmaterial_form_{$j}").find( "#order-total-" + [key] ).html('<p>' +str+'</p>' );
                        //console.log("data-ve: "+$("#marketingmaterial_form_{$j} select[name='"+key+"']").attr('data-ve') );
                        //console.log("key " +values[key]);
                    });
                });


            </script>