ugrás a tartalomhoz

Miért nem megy a Form javascript függvénnyel egyidejűleg ?

H.Tibcsi · 2007. Jan. 25. (Cs), 20.20
Sziasztok!

Valaki segítsen, miért nem megy a II. kód?!

Visual studio 2003 –al készült kód :

KÓD I.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">




</head>
<body>
<form method="post" action="példa.com">

<P><INPUT id="Text1" type="text" value="Form1" name="Text1"></P>
<P><INPUT id="Submit1" type="submit" value="Submit" name="Submit1"></P>

</form>
</body>
</html>




// ez az egyszerű form-os példa elküldi post-tal a textbox tartalmát tökéletesen. A küldés pedig az általam jelölt action-ra meg is érkezik. Utána php-vel használható adatfeldolgozásra.

*********************************************************************************************************************************************************************************************************************************


DE ! ???

Ahogy hozzárendelek pl. a textbox-hoz egy eseményt, az elrontja a form-ot. Egész pontosan , hibátlanul csak akkor megy az esemény , ha kiveszem a form-ot, a kettő együtt miért nem megy ?

KÓD II.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title></title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script id=clientEventHandlersJS language=javascript>

<!--

function Text1_onclick() {
Text1.value="megnyomta a submit gombot";
}

//-->
</script>


</head>
<body>
<form method="post" action="példa.com">

<P><INPUT id="Text1" type="text" name="Text1" language=javascript onclick="return Text1_onclick()"></P>

<P><INPUT id="Submit1" type="submit" value="Submit" name="Submit1"></P>

</form>
</body>
</html>

Ez a kód viszont már nem megy. /a textbox eseménye nem megy/ persze ha a form-ot kiveszem , akkor rögtön megy az esemény. Miért nem megy a kettő együtt ?
 
1

Tanulja..a..

Thomas · 2007. Jan. 25. (Cs), 21.03
Helló,

alapvető problémák vannak, a leírt script nem műkszik, gondolom...
Az alapgondolat mi lenne? Ha rákattintasz, akkor minek kellene történnie?

Próbáld meg az alapokat megtanulni, enélkül látod még egy ilyen alap dolgot sem tudsz megoldani
2

Válasz Thomasnak

H.Tibcsi · 2007. Jan. 25. (Cs), 22.16
Szia

Köszönöm ,hogy válaszoltál, de látom te sem értesz hozzá.

A form-os dolgokat milliószor használtam már űrlapokhoz, ez a példa szándékosan ilyen egyszerü.
Az első kód tökéletesen elküldi az általam (action-ben) jelölt útvonalra, jelen esetben POST methód-ussal a textbox tartalmát. Ami lehet akár semmi"" vagy bámilyen karakter, vagy karakterlánc. Az action-ban megjelölt címre megérkezik az adat amely $_POST['Textbox'] PHP parancsal bármire használható, adatfeldolgozásra.
Ahogy bele teszek egy javasrcipt függvényt, bármilyet (jelen esetben a kurzorral való belépés eseményét a szövegdoboz felett, vagyis egy tök egyszerü példát akartam írni- mely szerint a szövegdobozba való belépéskor változtassa meg a szövegdoboz VALUE értékét, azaz írja ki"megnyomta a gombot") Nos ez esetben már nem megy az űrlapküldés.

Javasrciptel (gondolom, nem így kell űrlapot küldeni). Pontosan ez az amit kérdeztem, hátha valaki tudja. Nincsenek alapvető problémák. Az alapvető gondolat tök egyszerü, : akkor is küldje el a textbox tartalmát űrlapként az általam jelölt method-al a kijelölt action útvonalra, hogyha éppen függyvény/esemény is van a szövegdobozhoz rendelve.

Csupán ennyit szerettem volna.
3

Szerintem elmegy a form

krey · 2007. Jan. 25. (Cs), 22.33
Kicsit értelmesebben is lehetne fogalmazni, nem arról írni egy órát, h post methód-ussal (metódussal) mit csinálsz, hanem arról, hogy mi kéne történjen. Elmentettem a 2. példádat és kipróbáltam:
Ha belekattintok a szövegmezőbe, akkor megváltozik az értéke (amire állítottad), ha submitra kattintok, akkor kiírja, hogy nincs ilyen cím, hogy file://C://...../p%E9lda.com. Szerintem ez tökéletes, mi a baj? Mit kéne csinálnia?

üdv. krey

ps. Kérlek olvasd vissza mégegyszer, hogy miket írsz...
4

válasz krey-nek

H.Tibcsi · 2007. Jan. 26. (P), 13.42
Köszönöm szépen, hogy vetted a fáradtságot, és kipróbáltad II. kódot.
Sajnos nálam az történik : rákattintok a szövegdobozra és ahelyett hogy megváltozna az érték - kiírja a bal alsó sarokba az explorer "hiba az oldalon". Nemtudom neked miért sikerül, szerintem sincs semmi baj a kóddal. /Ha kiveszem a Form-ot , akkor viszont nem jelez hibát./

Ezt mondja meg valaki miért van , és megemelem a kalapom előtte. Ha te esetleg tudod, légyszi írd meg nekem , valószínű jobban értessz hozzá.

(Csak olyan írjon aki képes felfogni ezt az egyszerü kérdést, és tudja is a megoldást, általános kioktatásra nem lennék kiváncsi.)
5

IE?!

krey · 2007. Jan. 26. (P), 16.51
Miért nem mondtad, h IE? :)
Kiírja, h hibás az oldal. Kattints a hibajelre. Felugrik egy ablak, az alján részletek gombbal. Katt rá. Kiírja, h nem találja a Text1-et. Erre két megoldás van:
1.

function Text1_onclick() {
document.myForm.Text1.value="megnyomta a submit gombot";
}

<form method="post" action="pelda.com" name="myForm">
 <input id="Text1" name="Text1" type="text" onclick="return Text1_onclick()">
 <input id="Submit1" name="Submit1" type="submit" value="Submit">
</form>
Megyjegyzés: megvan az a szokásom, h ilyen esetekben js-sel hozom létre az event-et is, így a html valid marad.
2.

function Text1_onclick() {
document.getElementById("Text1").value="megnyomta a submit gombot";
}
<form method="post" action="példa.com">
 <input id="Text1" name="Text1" type="text" onclick="return Text1_onclick()">
 <input id="Submit1" name="Submit1" type="submit" value="Submit">
</form>
Ez talán szebb is. Amúgy javasolnám, h kis betűkkel írd a tageket és idézőjelek közé tedd az attribútumokat. De csak tanács.

üdv. krey
7

hehe

TeeCee · 2007. Jan. 26. (P), 17.22
hehehehe...
Elkezdtem írni a választ, közben dolgoztam, megzavartak, visszajöttem -> hát nem azokat írtad, mint én? :D
10

minek az ID?

Hodicska Gergely · 2007. Jan. 29. (H), 03.53
1. document.myForm.Text1.value="megnyomta a submit gombot"; helyett a mindig működő szabványos elérés: document.forms['myForm'].elements['Text1'].value.

2.
function Text1_onclick(item) {
item.value="megnyomta a submit gombot";
}
<form method="post" action="példa.com">
 <input name="Text1" type="text" onclick="return Text1_onclick(this)">
 <input id="Submit1" name="Submit1" type="submit" value="Submit">
</form>
Üdv,
Felhő
6

alapvető hibák...

TeeCee · 2007. Jan. 26. (P), 17.19
A language=javascript mi a fenét keres egy INPUT elemben?
a szövegdobozba való belépéskor

Ez nem belépéskor, hanem belekattintáskor fut le! (onFocus a te függvényed, ha a belépés érdekel...)
Nekem gond nélkül elküldi a formot ezután is...

Manapság már nem text1.value, hanem getElementById('text1').value-ként szokás az ID alapján az elemeket elérni egy formban, de persze a 'régi' is működik :D

Ami lehet akár semmi"" vagy bámilyen karakter, vagy karakterlánc

Ez fantasztikus, köszönjük, hogy megosztottad velünk, hogy egy változó bármilyen értéket fölvehet :P

Barátod még a validator, ami megmondja, hogy az oldalad nem valid.

<script id=clientEventHandlersJS language=javascript>

Ennek nincsen ID attribútuma!
Ellenben hiányzik a TYPE attribútuma...
<script language="javascript" type="text/javascript">

Az érékeket szokás idézőjelek közé tenni. Nem fontos, csak szokás és ajánlott...
8

Válaszom Tecának

H.Tibcsi · 2007. Jan. 26. (P), 19.11
Windows programjaimat C# nyelven a legkönnyebben a visual studio-val tudom írni. A kódokat a visual studio 2003 rakja össze,formázza stb.. , megkímélve engem a többlet írogatástól, ami mindig jól jön.


Most épp kipróbáltam HTML készítéshez is .

Ezért vannak benne "fölösleges cuccok"
9

nem Teca :P

TeeCee · 2007. Jan. 27. (Szo), 19.15
hanem Tíszí, de ha gondolod, akkor inkább Tom, Tamás, Tomi, vagy egyéb válfajai. Köszi :)

Nos: inkább használj egy ingyenes, de használható HTMl-szerkesztőt, mert ez nem 'többlet', hanem rossz és hiányos MÁS. ;)
Használj validator-t (firefox-ban a webdeveloperben van ilyen elem, hogy 'Validate HTML' és 'Validate Local HTML', még csak szenvedned sem kell vele...)
HA a kódod valid HTML, nem ír hibát az IE és a FX sem, akkor kérdés a kérdés. Amígy valamelyik eset fennáll, addig azt kell előbb megoldani.

HAJRÁ Magyarok! Legalább 1 pontot srácok...