Dimiourgia formas me javascript..

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
bilios
Δημοσιεύσεις: 262
Εγγραφή: 29 Ιουν 2005 11:31
Τοποθεσία: Sahara..

Dimiourgia formas me javascript..

Δημοσίευση από bilios » 14 Ιαν 2006 05:45

Kalhmera!!

tha hthela an xerei kaneis na mou pei pos mporo na kano dhmiourgia mias formas me 5 pedia...kai ena pedio SUM
otan vazo mia timh sto pedio1 na to vazei sto SUM kai otan vazo timh sto pedio2 na to prosthetei sto SUM...

Apo oti katalava auto gia na ginei thelei Javascript...Etsi den einai?

Άβαταρ μέλους
bilios
Δημοσιεύσεις: 262
Εγγραφή: 29 Ιουν 2005 11:31
Τοποθεσία: Sahara..

Dimiourgia formas me javascript..

Δημοσίευση από bilios » 14 Ιαν 2006 05:47

OOOOP....
Lahtos Section....
Mporei kapios na to paei sta Javascript??

Sorry....

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Dimiourgia formas me javascript..

Δημοσίευση από cherouvim » 14 Ιαν 2006 10:02

Κώδικας: Επιλογή όλων

	<script type='text/javascript' src='script.js'></script>
...
	<form method='get' class='adder'>
		<label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
		<label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
		<label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
		<label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
		<label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
		<label>Sum&#58;</label><input type='text' class='sum' disabled='disabled' value=''/><br/>
		<input type='submit'/>
	</form>

Κώδικας: Επιλογή όλων

window.onload=init;

function init&#40;&#41; &#123;
	if&#40;document.getElementById && document.createTextNode&#41; &#123;
		var forms = document.getElementsByTagName&#40;'form'&#41;;
		for&#40;var i=0, length=forms.length; i<length; i++&#41; &#123;
			if &#40;forms&#91;i&#93;.className=='adder'&#41; &#123;
				var inputs = forms&#91;i&#93;.getElementsByTagName&#40;'input'&#41;;
				for&#40;var j=0, lengthj=inputs.length; j<lengthj; j++&#41; &#123;
					inputs&#91;j&#93;.setAttribute&#40;'autoComplete', 'off'&#41;;
					if &#40;inputs&#91;j&#93;.className!='sum'&#41; &#123;
						inputs&#91;j&#93;.onkeyup=function&#40;&#41; &#123;
							doSum&#40;this.parentNode&#41;;
						&#125;
					&#125;
				&#125;
			&#125;
		&#125;
	&#125;
&#125;

function doSum&#40;form&#41; &#123;
	var inputs = form.getElementsByTagName&#40;'input'&#41;;
	var sum = 0;
	for&#40;var j=0, lengthj=inputs.length; j<lengthj; j++&#41; &#123;
		if &#40;inputs&#91;j&#93;.className!='sum'&#41; &#123;
			sum += parseInt&#40;inputs&#91;j&#93;.value&#41;?parseInt&#40;inputs&#91;j&#93;.value&#41;&#58;0;
		&#125;
		else &#123;
			inputs&#91;j&#93;.value=sum;
		&#125;
	&#125;
&#125;
Dynamika tha anakalypsei oles tis formes sti selida pou ehoun class='adder'. Se aftes dynanika tha orisei sta inputs tous handler gia to onkeyup event. Otan afto symvei se opiodipote input, to input tha parei ton patera tou (to form) kai tha to stilei gia sum.

Mporeis na exeis oses formes thes. Ta onomata ton inputs telionoun se [] opote sto server side script sou tha erthoun oles oi times etimes se array pros summing. To summed input de to stelno mias kai einai disabled to input pou to parousiazei. Outosiallos kalo einai na ksanakaneis to sum sto server side giati o opiosdipote mporei na stilei oti thelei sto server sou.

To client-side summing pou eho kanei mporei na hiristei kala tis periptoseis pou o hristis tha valei mesa skoupidia, opos '123a', '5x234' kai 'john'. Afta isountai me 123, 5 kai 0 antistiha.

Live demo - http://temp.cherouvim.com/forums/summer

Άβαταρ μέλους
bilios
Δημοσιεύσεις: 262
Εγγραφή: 29 Ιουν 2005 11:31
Τοποθεσία: Sahara..

Dimiourgia formas me javascript..

Δημοσίευση από bilios » 14 Ιαν 2006 16:12

arxigos....

auto akrivos zhtousa...
ti napo apla arxigos...na sai kala re cherouvim!!
eixa vrei kati sto net alla den htan akrivos opos tha hthela alla to diko sou me esteile!

se eyxaristo apo kardias,
Billis..

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Dimiourgia formas me javascript..

Δημοσίευση από cherouvim » 14 Ιαν 2006 16:20

Ego efharisto pou mou edoses tin efkairia na grapso ligo Javascript Savvato proi.

Άβαταρ μέλους
bilios
Δημοσιεύσεις: 262
Εγγραφή: 29 Ιουν 2005 11:31
Τοποθεσία: Sahara..

Dimiourgia formas me javascript..

Δημοσίευση από bilios » 14 Ιαν 2006 16:43

To ekana! poly kalo!

an den kano lathos h form pou exeis doulevei me get etsi?
mporo na to alaxo se post? giati to project pou doulevo einai na ginetai kataxorhsh sta pedia me barcode pistoli kai sto telos to submit na phgainei kai na eisagei to sum se mia vasi sql, ola einai ftiagmena auta, apla den xero an tha epeireasei ton kodika sou..


P.S.:phga sthn selida sou good work! :D
Billis

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Dimiourgia formas me javascript..

Δημοσίευση από cherouvim » 14 Ιαν 2006 16:48

Gyrna to method="get" se post. To ekana apla gia na deis tis parametrous sto URL se periptosi pou patiseis submit.

tnx

Άβαταρ μέλους
bilios
Δημοσιεύσεις: 262
Εγγραφή: 29 Ιουν 2005 11:31
Τοποθεσία: Sahara..

Dimiourgia formas me javascript..

Δημοσίευση από bilios » 14 Ιαν 2006 16:53

allaxa ligo ton kodika ths formas kai ton ekana etsi...

Κώδικας: Επιλογή όλων

<script type='text/javascript' src='script.js'></script> 
   <form method="post" class='adder' action="sum_result.php"> 
      <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/> 
      <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/> 
      <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/> 
      <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/> 
      <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/> 
      <label>Sum&#58;</label><input name="sum_total" type='text' disabled='disabled' class='sum' id="sum_total" value=''/>
      <br/> 
      <input type='submit'/> 
   </form>
(fysika to js arxeio menei os exei...)
kai ton stelno se mia allh selida...

Κώδικας: Επιλογή όλων

<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<? echo"to sum einai&#58; $sum_total";?>
</body>
</html>
alla den mou emfanizei thn timh tou sum, tha eprepe na kano kai kapoia allh alagh?

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Dimiourgia formas me javascript..

Δημοσίευση από cherouvim » 14 Ιαν 2006 16:58

Opos eipa sto arhiko post i timi tou sum ypologismenou apo to client-side script den stelnete mazi me ta alla inputs. Afto symvainei giati to element einai disabled. Ypologise esy ksana to sum sto server-side gia na eisai safe. Allios kanto enabled perimene na dehteis otidipote sto server.

Άβαταρ μέλους
bilios
Δημοσιεύσεις: 262
Εγγραφή: 29 Ιουν 2005 11:31
Τοποθεσία: Sahara..

Dimiourgia formas me javascript..

Δημοσίευση από bilios » 14 Ιαν 2006 17:01

EXEIS dikio...
auto eftege thanx again!

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Dimiourgia formas me javascript..

Δημοσίευση από skeftomilos » 15 Ιαν 2006 16:13

Nice coding! :)

Μια πιθανή βελτίωση είναι να ενημερώνεται το κάθε input με την πραγματική αριθμητική τιμή στο onblur(). Δηλαδή αν κάποιος γράψει 'John', μόλις φεύγει από το πεδίο να εμφανίζεται 0.

Μερικές απορίες:

Κώδικας: Επιλογή όλων

<label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
- Το στοιχείο label τι πλεονέκτημα προσφέρει;
- Υπάρχει λόγος που τα HTML attributes είναι σε single-quotes ή είναι θέμα γούστου;
- Έχω δει αντί για <br/> να μπαίνει <br />. Υπάρχει κάποιος λόγος;

Κώδικας: Επιλογή όλων

inputs&#91;j&#93;.setAttribute&#40;'autoComplete', 'off'&#41;;
- Το attribute autoComplete="off" τι ακριβώς κάνει;

Κι ένα quiz. Ο κώδικας παύει να δουλεύει αν η HTML γίνει έτσι:

Κώδικας: Επιλογή όλων

<form method='get' class='adder'>
  <fieldset>
    <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
    <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
    <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
    <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
    <label>Input&#58;</label><input type='text' name='adder&#91;&#93;'/><br/>
    <label>Sum&#58;</label><input type='text' class='sum' disabled='disabled' value=''/><br/>
  </fieldset>
  <input type='submit'/>
</form>
Γιατί;
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Dimiourgia formas me javascript..

Δημοσίευση από cherouvim » 15 Ιαν 2006 16:46

Το στοιχείο label τι πλεονέκτημα προσφέρει;
Syndeei ena label me ena form input. Mporeis na klikareis pano sto label kai na se paei sto input katefthian opos tha deis edo. Sto sigekrimeno paradigma den to ekana giati eprepe na vaftiso me ids to kathe input element.

http://www.w3.org/TR/REC-html40/interac ... l#h-17.9.1
Υπάρχει λόγος που τα HTML attributes είναι σε single-quotes ή είναι θέμα γούστου;
Kathara thema goustou. Oi perisoteroi grafoun me double quotes, apla emena mou exei minei giati sinithos stin php thelo na kano:

Κώδικας: Επιλογή όλων

echo "<p>Hello $name! Visit my <a href='guestbook.php'>guestbook</a>!";
kai oxi

Κώδικας: Επιλογή όλων

echo "<p>Hello $name! Visit my <a href=\"guestbook.php\">guestbook</a>!";
Diladi variemai na kano escaping. Enoeitai oti tha glitona apo afto an elega:

Κώδικας: Επιλογή όλων

<p>Hello <?=$name?>! Visit my <a href="guestbook.php">guestbook</a>!
Έχω δει αντί για <br/> να μπαίνει <br />. Υπάρχει κάποιος λόγος;
Kanenas. Den kanei diafora ston html parser.
Το attribute autoComplete="off" τι ακριβώς κάνει;
Eksorismou ta inputs ehoun autoComplete on. Diladi o (modern) browser tha thymate to periehomeno tou (milame gia ta type='text' kai oxi gia type='password') etsi oste tin epomeni fora an o hristis paei grapsei 'j' tha tou emfanisei 'john'. Me autoComplete='off' den yparxei afti i symperifora.
Sto paradigma to eisago dynamika sta inputs giati to firefox exei ena kako bug me to sigekrimeno thema, otan paizeis me ta values ton inputs, kai petaei to eksis exception:

Κώδικας: Επιλογή όλων

Error&#58; &#91;Exception... "'Permission denied to get property XULElement.selectedIndex' when calling method&#58; &#91;nsIAutoCompletePopup&#58;&#58;selectedIndex&#93;"  nsresult&#58; "0x8057001e &#40;NS_ERROR_XPC_JS_THREW_STRING&#41;"  location&#58; "JS frame &#58;&#58; file&#58;///C&#58;/...../script.js &#58;&#58; anonymous &#58;&#58; line 13"  data&#58; no&#93;
Perisotera gia to bug sto https://bugzilla.mozilla.org/show_bug.cgi?id=236791
Ο κώδικας παύει να δουλεύει αν η HTML γίνει έτσι:
Giati prostheses ena fieldset metaksi tou form kai ton inputs kai o kodikas mou sto event apla pigenei apo to input sto form legontas this.parentNode. Einai arketa custom kai tha mporouse na pigenei sto parentNode mehri na vrei to form alla to ekana etsi apla. Tora tha doulepsei an tou peis this.parentNode.parentNode

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Dimiourgia formas me javascript..

Δημοσίευση από ThyClub » 15 Ιαν 2006 22:34

moved to javascript. :D

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Dimiourgia formas me javascript..

Δημοσίευση από skeftomilos » 16 Ιαν 2006 06:48

Σχετικά με τα εισαγωγικά μάλλον θα το έγραφα έτσι:

Κώδικας: Επιλογή όλων

echo '<p>Hello ' . $name . '! Visit my <a href="guestbook.php">guestbook</a>!';
Ενδιαφέρον το autocomplete attribute, δεν το είχα υπόψη. Αν και είναι αμφίβολο αν πρέπει να το πειράζουμε, δεδομένου ότι σχετίζεται με χρήσιμη λειτουργικότητα, κι ένας λόγος παραπάνω που είναι «ανεπίσημο» και δεν περιλαμβάνεται στην HTML 4.01 specification. Βγάζει invalid τη σελίδα μας δηλαδή. Ενδιαφέρον επίσης που το bug του Firefox παραμένει άλυτο για περισσότερους από 12 μήνες.

Για να λυθούν τα πιθανά προβλήματα που μπορεί να προκαλέσει η ιδιότητα this.parentNode, ο απλούστερος τρόπος είναι this.form. Ιδιότητα form έχουν τα στοιχεία select, option, input, textarea, button, label, fieldset και legent. Γενικά οι μέθοδοι του DOM parentNode, nextSibling κ.λπ. συνήθως συνεπάγονται μειωμένη ως ανύπαρκτη ευελιξία στο HTML markup.

Nice site btw! :D
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Dimiourgia formas me javascript..

Δημοσίευση από cherouvim » 16 Ιαν 2006 08:42

Poly endiaferon to this.form, tha mou miosei polles grammes kodika. Genika epidi den eho megali empiria apo JS programming protimo na paizo me standard dom methods gia na eimai safe.

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες