Ein spezielles Text-Feld-Skript

tom-s
Hallo!

Ich habe ein Skript zum Switchen zwischen 3 Textfeldern erfunden, dass ich mit jeder Version meiner Website ausbaue...

Nun habe ich aber das Problem, dass es im 2. Feld nicht MEHR funzt...

Vor ein paar Minuten funktionierte es noch aber jetzt: PLOPP! Nicht mehr.

Das kann ich mir eigentlich nicht erklären, und FireBug findet auch keine Fehler in dem Skript...

Also, hier der Source der 3 Textfelder:

code:
1:
2:
3:
4:
5:
6:
7:
<input type="text" name="key1" maxlength="6" size="6" onkeyup="CodeNext(1);">
-
<input type="text" name="key2" maxlength="4" size="4" onkeyup="CodeNext(2);">
-
<input type="text" name="key3" maxlength="5" size="5" onkeyup="CodeNext(3);">


Und hier nun der JS-Source:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
<script language="JavaScript" type="text/javascript">
function CodeNext (num) {
	var event = window.event;
	var code = event.which;
	if (num == 1) {
		if (document.forms[0].key1.value.length == 6) {
			if ((code != 37) && (code != 39)) {
				document.forms[0].key2.focus();
			}
			else if ((code == 39) && (document.forms[0].key1.selectionStart == 6) && (document.forms[0].key1.selectionEnd == 6)) {
				document.forms[0].key2.focus();
			}
		}
	}
	else if (num == 2) {
		if (document.forms[0].key2.value.length == 4) {
			if ((code != 37) && (code != 39)) {
				document.forms[0].key3.focus();
			}
			else if ((code == 39) && (document.forms[0].key2.selectionStart == 4) && (document.forms[0].key2.selectionEnd == 4)) {
				document.forms[0].key3.focus();
			}
		}
		else if ((document.forms[0].key2.selectionStart == 0) && (document.forms[0].key2.selectionEnd == 0)) {
			if (code == 37) {
				document.forms[0].key1.focus();
			}
		}
	}
	else {
		if (document.forms[0].key3.selectionStart == document.forms[0].key3.selectionEnd) {
			if (document.forms[0].key3.selectionStart == 0) {
				if (code == 37) {
					document.forms[0].key2.focus();
				}
			}
		}
	}
}
</script>


Kann mir wer helfen, warum es NUR beim 2. Feld nicht funzt?


Danke im Voraus,
Tom S.
Maniac_81
vielleicht weil du innerhalb des 2. blockes am schluß immer else if geschrieben hast? kenn mich jetzt nicht so in js aus, aber könnte sein.

versuchs doch mal so:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
else if (num == 2) {
		if (document.forms[0].key2.value.length == 4) {
			if ((code != 37) && (code != 39)) {
				document.forms[0].key3.focus();
			}
			else ((code == 39) && (document.forms[0].key2.selectionStart == 4) && (document.forms[0].key2.selectionEnd == 4)) {
				document.forms[0].key3.focus();
			}
		}
		else ((document.forms[0].key2.selectionStart == 0) && (document.forms[0].key2.selectionEnd == 0)) {
			if (code == 37) {
				document.forms[0].key1.focus();
			}
		}
tom-s
Danke für die Hilfe, aber das ist nicht die Lösung...

Ich versteh's ja auch nicht...

Ach ja, sei mir nicht böse: So würde es wohl noch weniger funzen smile

Tom S.
Maniac_81
wie gesagt, ich kenn JS nicht so gut, bin jetzt von PHP ausgegangen.

eine IF bedingung geht weiter mit elseif und endet dann mit else. deswegen dachte ich. hoffe dir kann jemand helfen smile
tom-s
naja