ugrás a tartalomhoz

Javascript onloadolt függvényben űrlapra hivatkozás

Butcher · 2005. Szep. 15. (Cs), 11.19
Hi!

Szoval olyan bajom lenne, hogy értéket kéne adnon egy <input>-nak, de nem műxik, a javascript konzol ezt irja ki:
Hiba: f.kiallitasdate_ev has no properties

ez a progi:

<script>
function Pagess(f) {
	var today = new Date()
	var day = today.getDate()
	var month = today.getMonth() + 1
	var year = today.getFullYear()
	f.kiallitasdate_ev.value=year;
}
</script>
<body onLoad="Pagess(f)">
<form name=f method=post action=index.php?menu=1>
<table>
	<tr>
		<td>	<input type=text name=kiallitasdate_ev size=4 maxlength=4 onFocus="this.style.background='#FFE400'" onBlur="this.style.background='#ffffff'"> (év)-
<td>
	</tr>
</table>
</form>
 
1

Így nem érhető el az űrlap

Török Gábor · 2005. Szep. 15. (Cs), 11.47
Több elvi hiba is van. Alapvetően a Pagess() függvény meghívásakor mi az az f paraméter? Nem kapott értéket sehol, ha közvetlenül elérhető lenne az űrlap ilyen módon, akkor pedig nem lenne szükség a paraméter átadásra sem. Az űrlap egy mezőjének értékét a document.forms["űrlapneve"].elements["mezőneve"].value hivatkozással tudod elérni. Tehát a te kódod helyesebben:

<script type="text/javascript">
function Pagess() {
    var today = new Date()
    var day = today.getDate()
    var month = today.getMonth() + 1
    var year = today.getFullYear()
    document.forms["f"].elements["kiallitasdate_ev"].value=year;
}
</script>
[...]
<body onLoad="Pagess()">
<form name="f" method="post" action="index.php">
<input type="hidden" name="menu" value="1">
<table>
    <tr>
        <td><input type="text" name="kiallitasdate_ev" size="4" maxlength="4" onFocus="this.style.background='#FFE400'" onBlur="this.style.background='#ffffff'"> (év)-
<td>
    </tr>
</table>
</form>
Javaslom az Objects and Properties című cikket, sokat fog segíteni.

További tanácsok:
  • A tagek attributumainak értékeit szerencsésebb, ha mindig idézőjelek közé teszed.
  • A [...]-tal jelölt területre minimum egy </head> tag kell.
  • A <script> tag kötelező paramétere a type, azt mindenféleképpen meg kell adnod.
  • Ha POST-tal küldöd az adatokat a formról, nem adhatsz meg GET típusú hivatkozást az akcióhoz, ilyenkor a további átadandó értékeket rejtett mezőbe teheted.
2

At unknown location

Anonymous · 2005. Szep. 15. (Cs), 12.41
Nem megy továbbra se.
Ha külön kiimásolom amit irtál ugy ok, de ha berakom az enyémbe akkor nem. Nálam még a
<body onLoad="Pagess()">
sor után van egy
<?php
function fugvenyem($conndb) { ?>

ez bezavarhat?
3

Nem hajtódik végre

Török Gábor · 2005. Szep. 15. (Cs), 13.24
Lehetséges, mert ha jól látom, az űrlapod akkor a függvényen belül lesz, tehát ha az a függvény nem fut le, magyarán az űrlapot nem íratod ki, a Pagess() olyan űrlapmezőre hivatkozik, ami nincs is az oldalon.
4

igaz...

Anonymous · 2005. Szep. 15. (Cs), 13.28
Ha kiveszem a php sorokat akkor megy szépen
Fügvényen kivül nem rakhatom a formot mert ugyanebben a fileban vanmég pár másik fügvény és form.
Hogy irassam ki az ürlapot? Ezt nem értem.
5

Plusz feltétel

Török Gábor · 2005. Szep. 16. (P), 07.58
Ugyanúgy, ahogy az űrlap kiíratását feltételhez kötöd, tedd elágazásba az onload eseménykezelő kiíratását is. Egyébként tulajdonképpen neked miért van szükséged erre a Pagess() JS függvényre? Mert lekérdezed a teljes dátumot, de csak az évet használod fel, és mindezt ráadásul egyszerűbben, PHP-vel is megtehetnéd, és akkor JS-t nem támogató, vagy JS-"kikapcsolt" böngészőkben is működni fog.

<input type="text" name="kiallitasdate_ev" [...] value="<?=date(Y)?>">