Wert des Selects

Pol

Mitglied
Hallo
Ich habe eine Liste "Select" welche ich den folgenden Wert nach Komma erhalten möchte:

Honorar, 125
Kopien, .50
Porti, 2.50

Beispiel:
Wenn ich auf Honorar klicke, dann sollte ich den Wert 125 erhalten und wenn ich auf Porti klicke dann den Wert 2.50.

Wo kann ich anfangen?
Danke
mpol_ch
 
Zuerst fragt sich wo und wie du die Daten dafür aufbewahren möchtest.

Am einfachsten ist ein Array:
Javascript:
var values =
[
  125,
  0.5,
  2.5
];
Und dann reagierst du auf ein onchange-Event:
Javascript:
// Diese Funktion kannst du natürlich auch im onchange-Attribut angeben
document.getElementById("selectID").addEventListener(function()
{
   alert( values[this.selectedIndex] );
});
 
Hello ComFreek

Danke sehr für die schnelle Antwort. Das ist nicht was ich möchte, glaube ich.

Bitte siehe den angehängten Image.

Ich habe für checkbox diesen untenstehenden Code verwendet, welche gut funktioniert. Aber ich brauche jetzt Hilfe für "Select" wie im Image.

Danke
mpol_ch

Javascript:
function showTotal() {
        document.frechnungenedit.x_Summe.value = ''; 
        document.frechnungenedit.x_MwSt.value = '';
        var Summe = 0;
        var MwSt = 0
        var splitted    
      var elements = document.getElementsByName("x_Posten[]");     
      for (i=0;i < elements.length;i++) {
      if (elements[i].checked) {                         
         splitted = elements[i].nextSibling.nodeValue.split(",");
         MwSt = MwSt+ + parseFloat(splitted[2]); 
         Summe = Summe+ + parseFloat(splitted[3]);                                                                 
      }                                        
    }                                                                                     
        document.frechnungenedit.x_MwSt.value = MwSt.toFixed(2);                                     
        document.frechnungenadd.x_Summe.value = (Math.round(Summe*20)/20).toFixed(2);                      
    }
 

Anhänge

  • kosten_select.png.jpg
    kosten_select.png.jpg
    57,7 KB · Aufrufe: 11
Zuletzt bearbeitet von einem Moderator:
Einfach nur ComFreeks Code anpassen. Statt dem alert:
Javascript:
var values =[125, 0.5, 2.5];
var ids  = ["ansatz", "feld2", "feld3"];
document.getElementById(ids[this.selectedIndex]).value = values[this.selectedIndex];
 
Hallo timestamp

Danke für die Antwort. The values sind nicht fix. Diese können je nach gewählten Fall anders sein.

Ich habe mit folgender Funktion versucht. Leider ohne Erfolg. Ist das Code so richtig? Kann ich hier selectedIndex so verwenden?
Danke.
mpol_ch
Javascript:
function SelectAnsatz() {
        document.fkostenedit.x_ko_ansatz.value = '0'; 
        var Ansatz = 0       
        var splitted    
      var elements = document.getElementsByName("x_ko_leistungsart[]");     
      for (i=0;i < elements.length;i++) {
      if (elements[i].selectedIndex) {                         
         splitted = elements[i].nextSibling.nodeValue.split(",");
         Ansatz = parseFloat(splitted[1]); 
          document.fkostenedit.x_ko_ansatz.value = Ansatz.toFixed(2); 
                                                                       
      }                                        
    }                                                                                     
      }
 
Zuletzt bearbeitet von einem Moderator:
Wenn du schreibst "...die values sind nicht fix..." dann meinst du doch wohl die Werte die timestamp und ComFreek in der gleichnamigen Variablen verwenden?

Was ich bei der ganzen Sache noch nicht verstanden habe ist warum du die gewünschten Werte nicht beim jeweiligen VALUE-Attribut der Liste einträgst und dann einfach ausliest.

Javascript:
<script language="javascript" type="text/javascript">
function SelectAnsatz (wert) {

document.getElementById("ansatz").value = parseFloat(wert).toFixed(2);

}
</script>

<select name="werte" size="3" onclick="SelectAnsatz(this.value);">
    <option value="250">Honorar, 125</option>
    <option value=".50">Kopien, .50</option>
    <option value="2.50">Porti, 2.50</option>
</select>
<br />
<input type="text" name="ansatz" id="ansatz" value="" size="20"/>
 
Hallo tombe

Danke für den Vorschlag. Bitte sehe die beiden Anhänge. Die Leistungsarten werden in Abhängigkeit zur Code dargestellt und deswegen Dynamisch.Ich kann diese Werte nicht statisch eintragen, denke ich.

Ich habe jetzt auch mit dieser Funktion versucht ohne Erfolg. Ich erhalte den "0" im Feld Ansatz...

Jeweils wird ein Option gewählt also keine Multi Select.

Danke
mpol_ch

function SelectAnsatz() {
document.fkostenedit.x_ko_ansatz.value = '0';
var Ansatz = 0;
var splitted ;
var elements = document.getElementsByName("x_ko_leistungsart[]");
if (elements[].selectedIndex) {
splitted = elements[0].nextSibling.nodeValue.split(",");
Ansatz = parseFloat(splitted[0]);
document.fkostenedit.x_ko_ansatz.value = Ansatz.toFixed(2);

}
}
 

Anhänge

  • kosten1.png.png
    kosten1.png.png
    44,8 KB · Aufrufe: 7
  • kosten2.png.png
    kosten2.png.png
    47,1 KB · Aufrufe: 6
Ich habe die Werte fest eingetragen (ist auch nur ein Beispiel) aber das spielt keine Rolle.

Entscheidend ist das du mit "SelectAnsatz(this.value)" immer den Wert an die JavaScript-Funktion übergibst, der gerade ausgewählt wurde.

Versuche es doch einfach mal!
 
Hallo tombe

danke. Also die Werte des Leistungsart kommen aus einer Lookup-Tabelle. Was ich benötige ist immer der Wert nach ",". Zum Beispiel 125 für den "Honorar, 125". Dieser Wert ändert sich in Abhängigkeit des Feldes "Code".

Könntest du bitte mal die Funktion, welche ich selber angehängt habe kontrollieren und mir sagen wo der Fehler liegen könnte?

Danke
mpol_ch
 
Welche angehängte Funktion meinst du?

Was passiert auf deiner Seite wenn du bei Code einen anderen Eintrag auswählst. Wird die Seite neu geladen, werden per Ajax die Leistungsdaten aktualisiert oder wie läuft das?

Ich verstehe es echt nicht, denn so bald du die Liste für die Leistungsdaten neu erstellst und die gültigen Angaben bei value machst, muss dieser Wert auch an die Funktion übergeben werden. Wenn nicht läuft irgendwas anderes schief!
 

Neue Beiträge

Zurück