ugrás a tartalomhoz

JS - több inputhoz trim()

PredMan · 2008. Feb. 8. (P), 20.38
Sziasztok!

azt szeretném elérni, hogy ha egy oldalon több inputom van, akkor azokat az üres tartalomtól levédjem. Írtam egy kódot, ami a spaceket trim-eli, csak nem sikerül beletenni a for ciklusba, hogy az összes inputon végigmenjen.

itt a kód:



<html>
<head>
</head>
<body>

<script language="JavaScript" type="text/javascript">
<!--

String.prototype.trim = function () {
return this.replace(/^\s*/, "").replace(/\s*$/, "");
}

function checkform(form) {

var mezok = array("alpha", "beta", "gamma");

for (i = 0; i < mezok.length; i++) {

var s = document.getElementById(mezok[i]).value;
trimmed = s.trim();
if (trimmed == "") {
alert("A beviteli mező üres!");
form.trimmed.focus();
return false;
}
}
}

//-->
</script>
</head>

<body>

<form method="post" action="" onsubmit="return checkform(this);">
<input type="text" name="alpha" id="alpha"><br>
<input type="text" name="beta" id="beta"><br>
<input type="text" name="gamma" id="gamma"><br>
<input type="submit" value="Search">
</form>

</body>
</html>



hol rontottam el? előre is köszönöm a segítségeteket!
 
1

new Array()

solkprog · 2008. Feb. 8. (P), 22.25
Elírtad:

var mezok = new Array("alpha", "beta", "gamma");
Nem néztem meg de szerintem így már jó lesz.
2

Más baj is van

zila · 2008. Feb. 9. (Szo), 09.36
form.trimmed.focus();

A trimmed egy változó, ezért a fenti formában nem használhatod, ráadásul nem a kontroll neve van benne, hanem az értéke, így akkor sem tenné sehová a fókuszt, ha egyébként jól használnád (pl. eval-lal)...

Helyette:
var s = document.getElementById(mezok[i]);
trimmed = s.value.trim();
...
s.focus();
3

thx

PredMan · 2008. Feb. 9. (Szo), 14.09
köszönöm szépen a segítségeteket! tökéletesen működik! ;)