[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

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

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

Απάντηση
Άβαταρ μέλους
billaki84
Δημοσιεύσεις: 38
Εγγραφή: 28 Μαρ 2011 15:45

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από billaki84 » 27 Απρ 2012 18:37

Καλησπέρα,
Εχω μια φόρμα με κάποια πεδία. Σε ένα από αυτα ο χρήστης συμπληρώνει ένα όνομα. Πως θα επιτρέψω σε αυτό το πεδίο ΜΟΝΟ Ελληνικούς χαρακτήρες; Για αγγλικούς ξέρω με τα κατάλληλα keycodes, αλλά με τους Ελληνικούς τι γίνεται; Καμιά ιδέα;
Ευχαριστώ.
Τελευταία επεξεργασία από το μέλος billaki84 την 27 Απρ 2012 23:44, έχει επεξεργασθεί 1 φορά συνολικά.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από alou » 27 Απρ 2012 20:10

Με αυτό το fuction, επιτρέπεις μόνο συγκεκριμένα keycodes. Η μεγαλύτερη μανούρα ήταν να βρω αυτά που θέλω (ελληνικούς χαρακτήρες 913 - 969 και backspace 8 ).

Αν θες να βρεις κάποιον επιπλέον χαρακτήρα, επειδή εγώ τουλάχιστον δεν είχα βρει κάποιο πίνακα με τα keycodes των ελληνικών χαρακτήρων, κάνε unremark το alert και πάτα τον στο input.

Πιθανώς να έχω παραλείψει χαρακτήρες ή να επιτρέπω χαρακτήρες που δεν πρέπει σε αυτό το range, δεν είμαι σίγουρος.

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

<script type="text/javascript">
function onlyGreek&#40;e&#41; &#123;
     var gr;
     document.all ? gr = e.keyCode &#58; gr = e.which;
	 //alert&#40;e.which&#41;;
     return &#40;&#40;gr > 912 && gr < 970&#41; || gr == 8&#41;;
&#125;
</script>
και

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

<form id="typeGreek" action="">
<input type="text" onkeypress="return onlyGreek&#40;event&#41;" />
</form>

Άβαταρ μέλους
billaki84
Δημοσιεύσεις: 38
Εγγραφή: 28 Μαρ 2011 15:45

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από billaki84 » 27 Απρ 2012 20:25

alou έγραψε:Με αυτό το fuction, επιτρέπεις μόνο συγκεκριμένα keycodes. Η μεγαλύτερη μανούρα ήταν να βρω αυτά που θέλω (ελληνικούς χαρακτήρες 913 - 969 και backspace 8 ).

Αν θες να βρεις κάποιον επιπλέον χαρακτήρα, επειδή εγώ τουλάχιστον δεν είχα βρει κάποιο πίνακα με τα keycodes των ελληνικών χαρακτήρων, κάνε unremark το alert και πάτα τον στο input.

Πιθανώς να έχω παραλείψει χαρακτήρες ή να επιτρέπω χαρακτήρες που δεν πρέπει σε αυτό το range, δεν είμαι σίγουρος.

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

<script type="text/javascript">
function onlyGreek&#40;e&#41; &#123;
     var gr;
     document.all ? gr = e.keyCode &#58; gr = e.which;
	 //alert&#40;e.which&#41;;
     return &#40;&#40;gr > 912 && gr < 970&#41; || gr == 8&#41;;
&#125;
</script>
και

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

<form id="typeGreek" action="">
<input type="text" onkeypress="return onlyGreek&#40;event&#41;" />
</form>
Είσαι ωραίος:) Δυστυχώς και εγώ έψαξα και δεν βρήκα κάτι. Αυτό που είχα φτιάξει σε άλλη φάση ήταν να διαβάζω από ένα textbox που περιείχε Ελληνικούς χαρακτήρες και να τους αποδίδω σε ένα άλλο textbox, αλλά εκεί πληκτρολογούσα ΜΟΝΟ συγκεκριμένους χαρακτήρες στη σειρά, αλλά τεσπα. Θα ρίξω το δικό σου μια ματιά και επανέρχομαι. Και μια ερώτηση. Τα keycodes αυτά πως προέκυψαν; Θέλω να πω τα "βρήκες" μέσω alert;

edit
απο 913 μέχρι 937 είναι για τα μικρά και
από 945 μέχρι 969 είναι για τα κεφαλαία.

Τα υπόλοιπα keycodes για ποιους χαρακτήρες είναι; Γιατί δεν τους βρίσκω.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από alou » 27 Απρ 2012 23:17

Ναι, με alert α μικρό το πρώτο και ω κεφαλαίο τελευταίο νομίζω είχα τσεκάρει ή το ανάποδο, αν βρεις κάτι παραπάνω μου λες και μένα.

Άβαταρ μέλους
billaki84
Δημοσιεύσεις: 38
Εγγραφή: 28 Μαρ 2011 15:45

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από billaki84 » 27 Απρ 2012 23:42

Την έκανα λίγο πιο συγκεκριμένη τουλάχιστον γιατί έτσι τη θελώ εγώ. Χωρίς κάποιους "κενούς" χαρακτήρες που ακόμη δεν βρήκα ποιοι είναι. Επιτρέπει μόνο τo backspace, τα κεφαλαία και τους μικρούς χαρακτήρες. Τώρα για οποιοδήποτε άλλο χαρακτήρα μπορεί απλά να προστεθεί.

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

     function onlyGreek&#40;e&#41; &#123;
                    var gr;
                    document.all ? gr = e.keyCode &#58; gr = e.which;
                    //alert&#40;e.which&#41;;
                    return &#40;&#40;gr > 912 && gr < 938&#41; || &#40;gr > 944 && gr < 970&#41; || &#40;gr > 939 && gr < 944&#41; || gr == 8 || gr == 32 || gr == 972 || gr == 973 || gr == 974&#41;;
                &#125;
Ευχαριστώ πολύ για τη βοήθεια.:)
Τελευταία επεξεργασία από το μέλος billaki84 την 28 Απρ 2012 16:47, έχει επεξεργασθεί 2 φορές συνολικά.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από alou » 28 Απρ 2012 01:54

Νάσαι καλά :D

Άβαταρ μέλους
billaki84
Δημοσιεύσεις: 38
Εγγραφή: 28 Μαρ 2011 15:45

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από billaki84 » 28 Απρ 2012 16:45

Εκάνα ένα edit στο παραπάνω ποστ μου. Γιατί έτσι όπως ήταν η συνάρτηση δεν μπορούσες να βάλεις τόνο και να πατήσεις το space.

Αρα έχουμε και λέμε:

- keycode 940 = ά
- keycode 941 = έ
- keycode 942 = ή
- keycode 943 = ί
- keycode 972 = ό
- keycode 973 = ύ
- keycode 974 = ώ
- keycode 32 = space

Αρα είχες δίκιο για τα επιπλέον keycode alou, αλλά και πάλι κάποια δεν τα βρήκα :-?

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από alou » 28 Απρ 2012 19:10

Τα είχα βρει κάποια στιγμή, εκτός από τόνους είναι φωνήεντα με διαλυτικά και ..., μια και μπήκαμε στη διαδικασία θα το ξανακοιτάξω να υπάρχουν :)

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από alou » 29 Απρ 2012 18:00

Τελικά με ένα function τυπώνεις εύκολα όλα τα keycodes, απλά είχα(με) κολήσει και δεν το σκεφτήκαμε νωρίτερα.

javascript greek keycodes.

Για περισσότερους χαρακτήρες αλλάζεις το range:

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

<!doctype html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Javascript Greek Character keycodes</title>
<style type="text/css">
#keycodelist &#123;width&#58;300px;margin&#58;0 auto;&#125;
dt &#123; background-color&#58; #dadada;&#125;
dd &#123;display&#58;inline;padding&#58;5px 10px;&#125;
</style>
</head>
<body>
<div id="keycodelist">
<h3>A list of keycodes #902 - #974</h3>
<p>which is &#40;i think&#41; all Greek characters.</p>
<p>Check the source for the js function if you need to look for a different range.</p>
<div id="keycodes">
	<dl id="kcDef">
	</dl>
</div>
<script type="Text/Javascript">
var kclist = document.getElementById&#40;"kcDef"&#41;;

for &#40;var i = 902; i <= 974; i++&#41; &#123;
var dt = document.createElement&#40;"dt"&#41;;
dt.appendChild&#40;document.createTextNode&#40;i&#41;&#41;;
var dd = document.createElement&#40;"dd"&#41;;
dd.appendChild&#40;document.createTextNode&#40;String.fromCharCode&#40;i&#41;&#41;&#41;;
kclist.appendChild&#40;dt&#41;;
kclist.appendChild&#40;dd&#41;;
&#125;
</script>

</body>
</html>


Άβαταρ μέλους
billaki84
Δημοσιεύσεις: 38
Εγγραφή: 28 Μαρ 2011 15:45

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από billaki84 » 29 Απρ 2012 18:14

Έχεις κάνει τρομερή δουλειά. Μπράβο.
Νομίζω πως είναι χρήσιμη μια τέτοια συνάρτηση και όλοι μας θα τη χρειαστούμε κάποια στιγμή :D Ευχαριστώ και πάλι.

asteriosg
Δημοσιεύσεις: 75
Εγγραφή: 03 Οκτ 2012 16:24

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από asteriosg » 19 Δεκ 2012 19:42

Συγνώμη που ανασύρω το θέμα αλλά επειδή δε γνωρίζω καλά js, βάση του κώδικα αυτού :

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

function onlyGreek&#40;e&#41; &#123;
                    var gr;
                    document.all ? gr = e.keyCode &#58; gr = e.which;
                    //alert&#40;e.which&#41;;
                    return &#40;&#40;gr > 912 && gr < 938&#41; || &#40;gr > 944 && gr < 970&#41; || &#40;gr > 939 && gr < 944&#41; || gr == 8 || gr == 32 || gr == 972 || gr == 973 || gr == 974&#41;;
                &#125; 
πως θα μπορουσαμε να εμφανίζουμε ένα alert μύνημα όταν ο χρήστης δίνει μη ελληνικούς χαρακτήρες (πχ Δεκτοί μόνο ελληνικοί χαρακτήρες ) ;

Δοκίμασα έτσι :

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

unction onlyGreek&#40;e&#41; &#123;
                    var gr;
                    if &#40;document.all ? gr = e.keyCode &#58; gr = e.which&#41; &#123;
                    return &#40;&#40;gr > 912 && gr < 938&#41; || &#40;gr > 944 && gr < 970&#41; || &#40;gr > 939 && gr < 944&#41; || gr == 8 || gr == 32 || gr == 972 || gr == 973 || gr == 974&#41; &#125; 
else &#123;
Alert&#40;'Δεκτοί μόνο ελληνικοί χαρακτήρες'&#41;;
&#125;
                &#125;
αλλά δεν είναι σωστό, ποια θα ήταν η σωστή js σύνταξη ώστε να δουλέψει το if else και το alert ;

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

[SOLVED]textbox και Ελληνικούς χαρακτήρες ΜΟΝΟ!

Δημοσίευση από alou » 21 Δεκ 2012 00:21

Μάλλον θα πρέπει να το ορίσεις ανάποδα, δηλαδή να κάνεις alert και return false επιλέγοντας ποιά keycodes ΔΕΝ σου κάνουν, π.χ.

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

function onlyGreek&#40;e&#41; &#123;
     var gr;
     document.all ? gr = e.keyCode &#58; gr = e.which;
    //alert&#40;e.which&#41;;
     if &#40;&#40;gr < 912 || gr > 970&#41; && gr != 8&#41; &#123;
	 alert&#40;'μονο ελληνικά πλιζ'&#41;;
	 return false;
	 &#125;
	 
&#125;
Τα keycodes ~ τυχαία βέβαια θα τα δεις εσύ αλλά κάπως έτσι.

Απάντηση

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

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

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