# bestehenden Code erwarten



## thowe (4. Jan 2016)

Ich komme aus einer ganz anderen "(Programmier)Ecke". habe - nur - fortgeschrittene VBA-Kenntnisse. Nun erste Gehversuche in JS

Folgenden bestehenden js-code möchte ich erweitern.
*Meine Frage *bezieht sich darauf, wie die Variable'jah' "befüllt" wird... Dh woher weiß "JS" den Wert...???


```
var anleiheEinmaligAgio = 5.00;

    function calculateAnleiheEinmalig(anlage, agio, jahre) {
        var zinssatz = 5.50;
        switch (jahre) {
            case 9:
                zinssatz = 5.50;
                break;
            case 12:
                zinssatz = 6.50;
                break;
        }

        var kosten = anlage * agio / 100;
        var zinsen = anlage * zinssatz / 100 * jahre - kosten;
        var ergebnis = anlage + zinsen;
        ergebnis = String(Math.round(ergebnis * 100) / 100).replace('.', ',');

        $('#anleihe-einmalig-ergebnis').html('€ ' + ergebnis);
        $('#powermail_field_anleihe_einmalig_anlage').val('€ ' + anlage);
        $('#powermail_field_anleihe_einmalig_jahre').val(jahre + ' Jahre');
    }

    function initiateAnleiheEinmalig() {
        var anleiheEinmaligAnlage = parseFloat($('#anleihe-einmalig-betrag').val().replace(',', '.'));
        $('#anleihe-einmalig-slider').slider('setValue', anleiheEinmaligAnlage);
        var anleiheEinmaligJahre = parseFloat($('#anleihe-einmalig-laufzeit').val());

        calculateAnleiheEinmalig(anleiheEinmaligAnlage, anleiheEinmaligAgio, anleiheEinmaligJahre);
    }
    if ($('#anleihe-einmalig-betrag').length > 0) {
        initiateAnleiheEinmalig();
    }

    $('#anleihe-einmalig-slider').on('slide', function(ev) {
        $('#anleihe-einmalig-betrag').val(ev.value);

        var anleiheEinmaligAnlage = ev.value;
        var anleiheEinmaligJahre = parseFloat($('#anleihe-einmalig-laufzeit').val());

        calculateAnleiheEinmalig(anleiheEinmaligAnlage, anleiheEinmaligAgio, anleiheEinmaligJahre);
    });

    $('#anleihe-einmalig-laufzeit').change(function() {
        var anleiheEinmaligAnlage = parseFloat($('#anleihe-einmalig-betrag').val().replace(',', '.'));
        var anleiheEinmaligJahre = parseFloat($(this).val());

        calculateAnleiheEinmalig(anleiheEinmaligAnlage, anleiheEinmaligAgio, anleiheEinmaligJahre);
    });

    $('#anleihe-einmalig-betrag').change(function() {
        $(this).val($(this).val().replace(/[^0-9\.,]+/g, ''));
        $('#anleihe-einmalig-slider').slider('setValue', $(this).val().replace(/[^0-9\.,]+/g, '').replace(',', '.'));

        var anleiheEinmaligAnlage = parseFloat($(this).val().replace(',', '.'));
        var anleiheEinmaligJahre = parseFloat($('#anleihe-einmalig-laufzeit').val());

        calculateAnleiheEinmalig(anleiheEinmaligAnlage, anleiheEinmaligAgio, anleiheEinmaligJahre);
    });
```

Der HTML-code hiezu sieht wie folgt aus (nur das "Formular")


```
<h3>Anleihen Einmalige Anlage</h3>                        <fieldset class="powermail_fieldset powermail_fieldset_32 ">
                            <legend class="powermail_legend">Einmalige Anlage</legend>
                           
<div id="powermail_fieldwrap_91" class="powermail_fieldwrap powermail_fieldwrap_html powermail_fieldwrap_91 ">
    <span id="powermail_field_rechner">
       
                <div class="row form-section">
    <div class="col-md-4">
        <label for="anleihe-einmalig-betrag">Anlagebetrag</label>
        <div class="bar-wrap"><input data-parsley-id="4" id="anleihe-einmalig-betrag" class="bar" placeholder="€" data-min="1000" data-max="100000" value="1000" type="text"></div>
    </div>
    <div class="col-md-8">
        <div style="width: 100px;" class="slider slider-horizontal"><div class="slider-track"><div style="left: 0%; width: 100%;" class="slider-selection"></div><div style="left: 0%;" class="slider-handle round"></div><div style="left: 100%;" class="slider-handle round hide"></div></div><div style="top: -14px; left: 0px;" class="tooltip top hide"><div class="tooltip-arrow"></div><div class="tooltip-inner">1000</div></div><input data-parsley-id="6" style="" id="anleihe-einmalig-slider" class="span2" value="" data-slider-min="1000" data-slider-max="100000" data-slider-step="10" data-slider-value="0" data-slider-orientation="horizontal" data-slider-selection="after" data-slider-tooltip="hide" type="text"></div>
    </div>
</div>
<div class="row form-section">
    <div class="col-md-4 life">
        <label for="anleihe-einmalig-laufzeit">Laufzeit</label>
        <select data-parsley-id="8" name="anleihe-einmalig-laufzeit" id="anleihe-einmalig-laufzeit">
            <option value="9">9 Jahre</option>
            <option value="12">12 Jahre</option>
        </select>
    </div>
    <div class="col-md-8">
    <label>Zu erwartender Ertrag</label>
        <div class="result" id="anleihe-einmalig-ergebnis">€ 1445</div>
    </div>
</div>
           
    </span>
</div>
```

Ich kann im JS-Code nicht erkennen, wie der Wert fürh die Variable 'jahre' festgelegt wird.

Ichbitte um kurze Hilfestellung/Anregung etc. danke!

LG thowe


----------



## VfL_Freak (4. Jan 2016)

Moin,

Du bist im falschen Forum !!
Java != JavaScript !! 

Gruß Klaus


----------



## thowe (4. Jan 2016)

Uuups. Danke für die rasche Aufklärung.
Dann wende ich mich auf ein von Euch empfohlenes Forum.

Die Frge kann als gelöst betrachtet werden.


----------



## KaffeeFan (4. Jan 2016)

http://www.java-forum.org/forum/fuer-verirrte-fragen-zu-javascript.35/

Mfg
Luk


----------



## kneitzel (4. Jan 2016)

Die Variable jahre ist doch nur ein Parameter der Funktion calculateAnleiheEinmalig.

Und diese wird über initiateAnleiheEinmalig aufgerufen. Dazu wird anleihe-einmalig-laufzeit ausgelesen und als Gleitkommazahl interpretiert. Dieser Wert wird in anleiheEinmaligJahre gespeichert und dann im Aufruf verwendet.

Und das HTML Konstrukt, aus dem dieser Wert kommt, ist:

```
<select data-parsley-id="8" name="anleihe-einmalig-laufzeit" id="anleihe-einmalig-laufzeit">
           <option value="9">9 Jahre</option>
           <option value="12">12 Jahre</option>
       </select>
```

Konrad


----------



## thowe (4. Jan 2016)

Hallo Konrad,

danke für die Antwort. Ich entschuldige mich mal für die unzähligen Tippfehler. *Sorry*
Soweit habe/hatte ich das auch herausgelesen.... jedoch *nicht verstanden/kapiert*

Das bedeutet dass die Parameter in der Funktion _calculateAnleiheEinmali_g den Parameter in der Funktion _initiateAnleiheEinmalig_ entsprechen. Auch wenn Sie andere Bezeichner haben. Selbige Reihenfolge ist voraussetzung,oder?


----------



## kneitzel (4. Jan 2016)

initiateAnleiheEinmalig hat ja keine Parameter. Diese Funktion wird ohne Parameter aufgerufen und liest dann Werte aus der Webseite aus um dann die Funktion calculateAnleiheEinmalig mit den ausgelesenen Werten aufzurufen.


----------

