script gia to "Enter"

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

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

Απάντηση
Άβαταρ μέλους
Sotrek
Δημοσιεύσεις: 67
Εγγραφή: 25 Ιούλ 2005 18:48
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

script gia to "Enter"

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

Yparxei kapoio script oste se mia forma otan patame to "enter" na pigenei sto epomeno pedio tis formas kai na min h ypoboli tsi formas??? :-?

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

script gia to "Enter"

Δημοσίευση από Basilakis » 10 Ιαν 2006 16:52

Nay yparxei. Tha krataei ta stoixeia me cooikies kai den tha ta stelnei sto mail, kai meta tha ta travaei ola mazi, meta sto telos gia apostolh!

Άβαταρ μέλους
Sotrek
Δημοσιεύσεις: 67
Εγγραφή: 25 Ιούλ 2005 18:48
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

script gia to "Enter"

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

an mou edines kai to script... den xero akoma kala j
jscript
Εικόνα

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

script gia to "Enter"

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

Enweis na mhn stelnei thn forma kai na kanei elenxo olws twn stoixeiwn? H theleis na phgainei ste allh seldia me allh forma?

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

script gia to "Enter"

Δημοσίευση από ThyClub » 10 Ιαν 2006 17:44

Yparxei kapoio script oste se mia forma otan patame to "enter" na pigenei sto epomeno pedio tis formas kai na min h ypoboli tsi formas???
Βασικά θα πρέπει να δημιουργήσεις μια function που θα παρεμβάλει στον έλεγχο της φόρμας.

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

function switchFields(){
 document.getelementById('πεδίο').focus
}
και με το που πατάει το κουμπί ο χρήστης θα αλλάζει το id του πεδίου που θέλεις.Ο παραπάνω κώδικας δεν είναι σωστός (δεν κάνει αυτό που θέλεις) αλλά κάπως έτσι πρέπει να το υλοποιήσεις. Για περισσότερα περίμενε τίποτα skeftomilous, fafous κτλ :D

Έκαστος στο είδος του... :P :P

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

script gia to "Enter"

Δημοσίευση από fafos » 10 Ιαν 2006 20:31

Trexo gia na prolavo ton skeftomilo..... :kaloe:

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

<script type="text/javascript">
function handleEnter &#40;field, event&#41; &#123;
		var keyCode = event.keyCode ? event.keyCode &#58; event.which ? event.which &#58; event.charCode;
		if &#40;keyCode == 13&#41; &#123;
			var i;
			for &#40;i = 0; i < field.form.elements.length; i++&#41;
				if &#40;field == field.form.elements&#91;i&#93;&#41;
					break;
			i = &#40;i + 1&#41; % field.form.elements.length;
			field.form.elements&#91;i&#93;.focus&#40;&#41;;
			return false;
		&#125; 
		else
		return true;
	&#125;      

</script>
Kai se kathe pedio prepei na valeis to parakato:

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

onkeypress="return handleEnter&#40;this, event&#41;
P.x. <input type="text" onkeypress="return handleEnter(this, event)">

ektos vevea apo to telefteo pedio gia na paththei kapote kai to submit :)

Treme Skeftomile!!! :lol:

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

script gia to "Enter"

Δημοσίευση από Basilakis » 10 Ιαν 2006 20:47

Lol... Omws nomizw pws afto thelei kai forma elenxou ean exei symbhrwthei.. Alliws den ean kapoios paei me to mouse parakatw;

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

script gia to "Enter"

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

Απλά πάει στο επόμενο πεδίο :wink:

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6230
Εγγραφή: 30 Νοέμ 2004 03:09

script gia to "Enter"

Δημοσίευση από fafos » 10 Ιαν 2006 23:42

Basilakisweb έγραψε:Lol... Omws nomizw pws afto thelei kai forma elenxou ean exei symbhrwthei.. Alliws den ean kapoios paei me to mouse parakatw;
Re Basilaki ti zhtaei o anthropos? auto pou zhtaei tou dosame.. autos mporei meta na thelei na pshnei kai kokoretsi h forma tou.. otan thelei na pshnei to kokoretsaki tou :roll: tha mas rothsei, to validation ths formas pou kollaei?

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

script gia to "Enter"

Δημοσίευση από skeftomilos » 11 Ιαν 2006 09:51

Σωστός ο Fafos! :) Μια πολύ σοφιστικέ προσέγγιση θα λάμβανε υπόψη και τα tabIndex. Το προσπάθησα λίγο αλλά είναι μεγάλο μπέρδεμα και τα παράτησα. :(
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

script gia to "Enter"

Δημοσίευση από Basilakis » 11 Ιαν 2006 10:42

Nai re sy fafos. Egw milaw omws gia mia oloklhrwmenh prosegkish. Ti allo tha eprepe na yparxei mesa sto script. Den ethiksa ton kwdika sou. EInai poly kalos, alla ean kapoios patouse synexeia next, next, tha phgaine na kanei to submit kathefthian, h tha phgaine me to mouse se alla paidia tha ta symblirwne kai tha thn estelne. Den lew oti afto den zhtaei aftos... Lew ti provlhmata mporoun na dhmiourghthoun me afto pou zhtaei, kai ti allo tha mporouse na ginei ;)

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

script gia to "Enter"

Δημοσίευση από skeftomilos » 11 Ιαν 2006 12:50

Τελικά το έφτιαξα αυτό που έλεγα. Για να μην παίρνουν θάρρος μερικοί-μερικοί. :P:P:P

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

<script type="text/javascript">
  var TYPES = 'input/text; input/checkbox; input/radio; select'
  TYPES = arrayToSet&#40;TYPES.split&#40;/\s*;\s*/&#41;&#41;

  window.onload = function&#40;&#41; &#123;
    for &#40;var i = 0, form; form = document.forms&#91;i&#93;; i++&#41; &#123;
      hookForm&#40;form&#41;
    &#125;
  &#125;
  
  function hookForm&#40;form&#41; &#123;
    var elements = &#91;&#93;
    for &#40;var i = 0, element; element = form.elements&#91;i&#93;; i++&#41; &#123;
      elements&#91;i&#93; = element
      element.ordinal = i
    &#125;
    elements.sort&#40;function&#40;$1, $2&#41; &#123;
      return &#40;$1.tabIndex - $2.tabIndex&#41; || &#40;$1.ordinal - $2.ordinal&#41;
    &#125;&#41;
    for &#40;var i = 0, element; element = elements&#91;i&#93;; i++&#41; &#123;
      var type = element.nodeName.toLowerCase&#40;&#41;
      if &#40;type == 'input'&#41; type += '/' + element.type.toLowerCase&#40;&#41;
      element.nextIndex = elements&#91;&#40;i + 1&#41; % elements.length&#93;.ordinal
      if &#40;TYPES&#91;type&#93;&#41; element.onkeypress = handleEnter
    &#125;
  &#125;
  
  function handleEnter&#40;e&#41; &#123;
    e = e || window.event || &#123;&#125;
    var keyCode = e.keyCode || e.which || e.charCode
    if &#40;keyCode == 13&#41; &#123;
      this.form.elements&#91;this.nextIndex&#93;.focus&#40;&#41;
      return false
    &#125;
  &#125;
  
  function arrayToSet&#40;array&#41; &#123;
    var o = &#123;&#125;
    for &#40;var i = 0; i < array.length; i++&#41; o&#91;array&#91;i&#93;&#93; = true
    return o
  &#125;      
</script>
- Live Demo
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
Basilakis
PHP Moderator
Δημοσιεύσεις: 8574
Εγγραφή: 17 Νοέμ 2003 13:03
Τοποθεσία: Womans' Brain
Επικοινωνία:

script gia to "Enter"

Δημοσίευση από Basilakis » 11 Ιαν 2006 12:52

Kai exei demo.. Se efage fafos...

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

script gia to "Enter"

Δημοσίευση από cherouvim » 11 Ιαν 2006 13:31

Poly oraios.

Giati den termatizeis me ; ti kathe grammi?
Edo ti akrivos kaneis? e = e || window.event || {}
Se ti domi kataligei to TYPES se afton ton kodika? se Array?

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

  var TYPES = 'input/text; input/checkbox; input/radio; select'
  TYPES = arrayToSet&#40;TYPES.split&#40;/\s*;\s*/&#41;&#41; 

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

script gia to "Enter"

Δημοσίευση από skeftomilos » 11 Ιαν 2006 14:24

Ο χαρακτήρας τερματισμού γραμμής είναι προαιρετικός στη JavaScript. Ο interpreter αναλαμβάνει να προσθέσει ο ίδιος τα semicolons που λείπουν, και απ' όσο έχω δει όλοι parsers τα καταφέρνουν περίφημα να τα προσθέτουν εκεί που πρέπει. Μια περίπτωση που μπερδεύονται είναι αυτή:

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

var a = 5
&#40;function&#40;&#41; &#123;
  alert&#40;a&#41;
&#125;&#41;&#40;&#41;
... οπότε προσθέτω ένα semicolon πριν το (function() και το πρόβλημα λύνεται.

Το e = e || window.event || {} σημαίνει ότι:
- Αν το e είναι κάτι μένει όπως είναι.
- Αν είναι undefined/null γίνεται window.event.
- Αν και αυτό είναι undefined (απίθανο στη συγκεκριμένη περίπτωση) του αποδίδεται ένα άδειο αντικείμενο για να μη χτυπήσει ο κώδικας από κάτω.

Η δομή TYPES ξεκινάει από string και καταλήγει object. Θα μπορούσε να είχε γραφεί εξαρχής έτσι:

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

var TYPES = &#123;'input/text'&#58; true, 'input/checkbox'&#58; true, 'input/radio'&#58; true, 'select'&#58; true&#125;
Όσο για τη γραμμή:

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

if &#40;TYPES&#91;type&#93;&#41; ...
...θα ήταν πιο ευανάγνωστη έτσι:

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

if &#40;type in TYPES&#41; ...
...αλλά χτυπάει στον IE5.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Απάντηση

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

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

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