Κεφαλαίο το Πρώτο γράμμα σε text (capitalize)-πρόβλημα...

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

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

Απάντηση
Άβαταρ μέλους
renoua
Δημοσιεύσεις: 16
Εγγραφή: 21 Ιουν 2009 16:42

Κεφαλαίο το Πρώτο γράμμα σε text (capitalize)-πρόβλημα...

Δημοσίευση από renoua » 05 Ιούλ 2010 19:53

Γεια σας,

Έχω ένα text στην σελίδα μου και θέλω το πρώτο γράμμα που πληκτρολογεί ο χρήστης εκεί να γίνεται κεφαλαίο.. (κάνει αναζήτηση)

Οπότε έβαλα μέσα στο <input> του text το εξής:
<input type="text" id="textsearch1" size="40" style="text-transform:capitalize" />

Το οποίο όντως μετατρέπει το πρώτο μικρό γράμμα κάθε λέξης σε κεφαλαίο, αλλά όταν πάει να κάνει αναζήτηση ψάχνει με το μικρό..(αφού με το κεφαλαίο θα έπρεπε να μου εμφανίσει αποτελέσματα)

Τί πρέπει να κάνω για να μετατραπεί σε κεφαλαίο? Θέλει κάποιο javascript?

Ευχαριστώ !!!

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Κεφαλαίο το Πρώτο γράμμα σε text (capitalize)-πρόβλημα...

Δημοσίευση από burnmind » 05 Ιούλ 2010 20:36

Μπορείς να το κάνεις είτε client-side με JavaScript, είτε server-side με ό,τι γλώσσα χρησιμοποιείς. Θα σου πρότεινα να επιλέξεις τη server-side λύση ώστε να μη βασιστείς στη JS (μια και κάποιος χρήστης μπορεί να την έχει απενεργοποιημένη). Αν χρησιμοποιείς PHP, γίνεται με τη ucwords.

Άβαταρ μέλους
renoua
Δημοσιεύσεις: 16
Εγγραφή: 21 Ιουν 2009 16:42

Κεφαλαίο το Πρώτο γράμμα σε text (capitalize)-πρόβλημα...

Δημοσίευση από renoua » 05 Ιούλ 2010 21:22

Γενικότερα η όλη φύση της εργασίας μου βασίζεται κυρίως σε javascript/ajax οπότε δεν έχει νόημα να το κάνω αυτό σε php(Μιας και γενικά είμαι αρχάρια και δεν ξέρω τί να πρωτοπιάσω να μαθαίνω και τί να αφήσω .. :P )

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

<SCRIPT LANGUAGE="JAVASCRIPT">
			String.prototype.capitalize = function&#40;&#41;&#123;
  			return this.replace&#40; /&#40;^|\s&#41;&#40;&#91;α-ω&#93;&#41;/g , function&#40;m,p1,p2&#41;&#123; return p1+p2.toUpperCase&#40;&#41;; &#125; &#41;;
 			 &#125;; 
			function capWords&#40;&#41; &#123;
			var inputString = document.form1.textsearch; // The input text field
			var outputString = document.form1.textsearch; // The output text field
			outputString.value = inputString.value.capitalize&#40;&#41;;
			&#125;
			</SCRIPT>
και για το κουμπί

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

<form name="form1" method="post">
			<input type="text" name="textsearch" id="textsearch1" size="40" style="width&#58;95%"  onkeyup="capWords&#40;&#41;"/>
            </form>

Βρήκα αυτόν τον κώδικα και τον προσάρμοσα στα μέτρα μου αλλά το πρόβλημα είναι ότι αρχίζει να αναζητάει από τον δεύτερο χαρακτήρα και μετά, ενώ θα ήθελα να εμφανίζονται από την πληκτρολόγηση του πρώτου χαρακτήρα κιόλας τα αποτελέσματα.
Αν βάλω εγώ σαν πρώτο χαρακτήρα κεφαλαίο ξεκινάει την αναζήτηση κανονικά, όπως θέλω.

Τώρα δνε ξέρω αν φταίει σε κάτι το script capWords() ή το autosuggest() (στο οποίο έχω ορίσει κανονικά να κάνει απο τον πρώτο κιόλας χαρακτήρα αναζήτηση).

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Κεφαλαίο το Πρώτο γράμμα σε text (capitalize)-πρόβλημα...

Δημοσίευση από burnmind » 05 Ιούλ 2010 22:39

renoua έγραψε:Βρήκα αυτόν τον κώδικα και τον προσάρμοσα στα μέτρα μου αλλά το πρόβλημα είναι ότι αρχίζει να αναζητάει από τον δεύτερο χαρακτήρα και μετά, ενώ θα ήθελα να εμφανίζονται από την πληκτρολόγηση του πρώτου χαρακτήρα κιόλας τα αποτελέσματα.
Αν βάλω εγώ σαν πρώτο χαρακτήρα κεφαλαίο ξεκινάει την αναζήτηση κανονικά, όπως θέλω.

Τώρα δνε ξέρω αν φταίει σε κάτι το script capWords() ή το autosuggest() (στο οποίο έχω ορίσει κανονικά να κάνει απο τον πρώτο κιόλας χαρακτήρα αναζήτηση).
Ο κώδικας είναι από το πρώτο αποτέλεσμα του google στα keywords "javascript capitalize". Δε μας δείχνεις το autosuggest() όμως που είναι υπεύθυνο για την αναζήτηση και ούτε φαίνεται να καλείς κάπου τη συγκεκριμένη function.

Από εκεί και πέρα, εγώ θα επιμείνω στη server-side λύση. Αφού όπως λες χρησιμοποιείς ajax request για την αναζήτηση, πας στο server-side script που είναι υπεύθυνο γι'αυτό και αντί για να κάνεις αναζήτηση για $search κάνεις για ucname($search). Απλά και όμορφα! :D Κράτα τη λύση με CSS γι' αυτό που βλέπει ο χρήστης.

Τέλος, αφού όπως λες είσαι αρχάρια, θα πρότεινα να κάνεις αργά αλλά σταθερά βήματα: Άρχισε από απλά πράγματα και μη πέφτεις κατ'ευθείαν στα βαθιά (μια και αν αγνοείς βασικά πράγματα, αργά ή γρήγορα θα τα βρεις σκούρα). Επίσης, μη βασίζεσαι σε έτοιμα scripts για να κάνεις τη δουλειά σου, αλλά προσπάθησε να γράψεις τα δικά σου (ακόμα και αν είναι πιο κακογραμμένα από τα έτοιμα) μια και είναι ο καλύτερος (αν όχι ο μόνος) τρόπος για να μάθεις!

Άβαταρ μέλους
renoua
Δημοσιεύσεις: 16
Εγγραφή: 21 Ιουν 2009 16:42

Κεφαλαίο το Πρώτο γράμμα σε text (capitalize)-πρόβλημα...

Δημοσίευση από renoua » 05 Ιούλ 2010 23:10

Το autosuggest.js (που έχει μέσα πολλά functions),
τρέχει με <body onload="init()"> και είναι σε ετοιμότητα κάθε φορά που ο χρήστης πληκτρολογήσει κάτι σε text box. :P

Είναι ένας κώδικας 1247 γραμμών!! Μου τον έδωσε ο καθηγητής μου να τον χρησιμοποιήσω..

θα τον μελετήσω και θα δω μήπως μπορέσω να κάνω απο εδώ αυτήν την λειτουργία.

Ενδεικτικά, αυτές είναι οι πρώτες 12 γραμμές κώδικα..

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

function init&#40;&#41; &#123;
// try to guess the service url
var rexp = /&#40;.*&#41;\//;	// for this to work, the redirector addr must NOT contain "/entry/"
var rexr = rexp.exec&#40;location.href&#41;;
if &#40;rexr.length>0&#41; &#123;
    //app_vars.classinfourl = rexr&#91;1&#93;+'/entry/classentry.html';
    var suggesturl = rexr&#91;1&#93;+'/searchtheme.php?q=';
&#125;
new actb&#40;'textsearch1'&#41;;
var obj = new actb&#40;'textsearch1', '', suggesturl&#41;;
document.getElementById&#40;'textsearch1'&#41;.focus&#40;&#41;;
&#125;

Έχεις απόλυτο δίκιο σε αυτό έτσι είναι! αλλά κάνω την πτυχιακή μου και αναγκαστικά πέφτω στα βαθιά λόγω έλλειψης χρόνου ( την παραδίδω σε λίγες μέρες).

Ωστόσο έχω ενθουσιαστεί με το αντικείμενο (καιρός ήταν μετά από 5χρόνια) και νομίζω θα ασχοληθώ εκτενέστερα!

Σε ευχαριστώ πολύ για τον χρόνο σου όπως και να 'χει :)

Απάντηση

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

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

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