Was mache ich Falsch? Komisch!
Alex
- javascript
0 LX0 Kalle_B0 Bademeister
Hallo, brauche eure Hilfe.
Ich generiere mit JS in einem Select-Tag die optionen, leider kommt es zu einem Fehler:
<script type="text/javascript">
var jetzt = new Date();
var jahr = jetzt.getFullYear();
for(var i=jahr; i < jahr+11; i++) {
var kurz = jahr.substr(2,4);
document.write('<option value="'+ kurz +'">'+ i +'</option>');
}
</script>
Das Ziel ist, 10 Optionen zu generieren, vom Jahr 2008 bis 2018.
Dabei muss ich als Value, das Jahrkürzel benutzen, also bei 2008 die "08" usw.
Es kommt aber immer zu einem Fehler, warum?
jahr.substr is not a function
var kurz = jahr.substr(2,4);
Hallo!
jahr
ist eine Zahl, kein String - damit fehlt ihr die Methode substr. Verwende lieber den Modulo:
var kurz = jahr % 100;
Damit kommst Du auf das gewünschte Ergebnis und brauchst keine Typenkonvertierung zu machen.
Gruß, LX
jahrist eine Zahl, kein String - damit fehlt ihr die Methode substr. Verwende lieber den Modulo:
var kurz = jahr % 100;
>
> Damit kommst Du auf das gewünschte Ergebnis und brauchst keine Typenkonvertierung zu machen.
Danke, aber ich bekomme trotzdem nur "8" als Value, ich will aber "08".
hallo,
var kurz = jahr % 100;
> Danke, aber ich bekomme trotzdem nur "8" als Value, ich will aber "08".
dann müsstest du nachfragen jahr%100 derzeit kleiner 10 ist und gegebenenfalls eine null davorsetzen. zB. so.: ~~~javascript
var kurz = ((kurz = jahr%100) < 10) ?"0"+kurz :kurz;
gruß,
pD
Danke, aber ich bekomme trotzdem nur "8" als Value, ich will aber "08".
Eine Zahl wird zum String, indem mindestens ein Buchstabe angefügt wird:
jahrx = jahr +'x';
Wenn du sicher bist, dass es keine führenden Nullen gibt, kannst du jetzt einen Substring abgreifen:
jj = jahrx.substr(2,2);
Kalle
Hi,
Eine Zahl wird zum String, indem mindestens ein Buchstabe angefügt wird:
ein (auch Zahlen-)Objekt wird zum String, indem dessen toString()-Methode aufgerufen wird. Andere Methodiken der Kategorie "Trick" existieren ebenfalls - und zwar ohne das Ergebnis inhaltlich zu verfälschen.
Cheatah
[latex]Mae govannen![/latex]
Danke, aber ich bekomme trotzdem nur "8" als Value, ich will aber "08".
Eine Zahl wird zum String, indem mindestens ein Buchstabe angefügt wird:
jahrx = jahr +'x';
Nö, auch mit '' geht es:
a = 2008;
alert (typeof a);
a = 2008 + '';
alert (typeof a);
Sinnvoll ist es trotzdem nicht, sondern man sollte es so machen, wie es vorgesehen ist ;)
Cü,
Kai
Hi,
Danke, aber ich bekomme trotzdem nur "8" als Value, ich will aber "08".
Na dann fang bloss nicht an, selber mitzudenken, sondern warte einfach ab, bis dir die fertige Loesung auf dem Silbertablett serviert wird.
MfG ChrisB
Grundlage für Zitat #1294.
Das Ziel ist, 10 Optionen zu generieren, vom Jahr 2008 bis 2018.
Wieviele Optionen sind das?
var kurz = jahr.substr(2,4);
Wenn das Jahr "2010" ist, was soll dann jahr.substr(2,4) sein?
Kalle
Hi Alex,
> for(var i=jahr; i < jahr+11; i++) {
> var kurz = jahr.substr(2,4);
> document.write('<option value="'+ kurz +'">'+ i +'</option>');
> }
Moechtest Du nicht spaeter bei der Auswertung des Formulares wissen, welches Jahr ausgewaehlt wurde?
Viele Gruesse,
der Bademeister