..


Σύνδεσμοι διαφημιζόμενων

jQuery: μια γραμμή προόδου για να δείξει το "γέμισμα" του textarea

Το άρθρο γράφτηκε από τον Riccardo Brambilla
Σελίδα 1 από 2

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

Όταν ένα έργο που είχα την ανάγκη να περιοριστεί ο αριθμός των χαρακτήρων που επιτρέπονται σε ένα textarea σκέφτηκα λυθεί μέσα σε λίγα λεπτά, δεν ήταν έτσι, βρήκα διάφορες λύσεις στο διαδίκτυο, αλλά δεν μου πειστική στο τέλος, γι 'αυτό αποφάσισε να εφαρμογή έθιμο κάτι χρησιμοποιώντας jQuery και εξαιρετική jQueryUI , ιδίως το στοιχείο της progessbar πακέτο.

Η ανάκτηση των αρχείων που απαιτούνται

Colleghiamoci να http://jqueryui.com/ και κάντε κλικ στο κουμπί "κατεβάσετε έθιμο Build" στο πάνω δεξιά.
Στην επόμενη σελίδα επιλέξτε χρήσιμα εξαρτήματα, και ένα από τα διαθέσιμα widgets και αν αποφασίσουμε να λαμβάνουν μόνο τα progressbar.

jQueryUI σελίδα λήψης επιλογές
Επιλέγουμε το γραφικό πρότυπο από την πτυσσόμενη λίστα στα δεξιά και κάντε κλικ στο "Download". Αποσυμπιέστε το πακέτο που κατεβάσαμε και βρείτε τρεις φακέλους και ένα αρχείο στη ρίζα:
  • css φάκελο που περιέχει το θέμα, στην περίπτωσή μας το προεπιλεγμένο, ui-ελαφρότητα
  • ανάπτυξη-πακέτο περιέχει παραδείγματα και τεκμηρίωση
  • JS: περιέχει τα δύο αρχεία που χρειάζονται για να τρέξει τη λύση μας? jQuery και jQuery-ui-1.4.4.min.js-1.8.9.custom.min.js
  • index.html: μια σελίδα που μας επιτρέπει να δούμε ένα παράδειγμα για το θέμα / τα widgets που έχουμε επιλέξει

Για μικρό παράδειγμα μας θα δημιουργήσει μια απλή δομή ως εξής:

  • αποσυμπιεσμένο φάκελο για να jQueryUI (jquery-ui-1.8.9.custom)
  • file.html συσκευασία που περιέχει το textarea
  • file.js που περιέχει το jQuery κώδικα

Δημιουργούμε HTML αρχείο μας, δώστε ένα όνομα με νόημα (θα τον λέμε mrw_jquery_txtcheck.html) και τοποθετήστε στο εγκλείσματα ετικέτα κεφάλι απαραίτητα: η σύνδεση με το θέμα css αρχεία και JS jQuery και jQueryUI.






 href = "jquery-ui-1.8.9.custom/css/ui-lightness/jquery-ui-1.8.9.custom.css" <link rel="stylesheet" type="text/css" />







 <script type="text/javascript" src="jquery-ui-1.8.9.custom/js/jquery-1.4.4.min.js"> </ script>







 <script type="text/javascript" src="jquery-ui-1.8.9.custom/js/jquery-ui-1.8.9.custom.min.js"> </ script>



Προσθέστε το textarea στο σώμα:

 



 <div> <textarea name="limitedOne" id="limitedOne" style='width:250px;height:100px;'> </ textarea> </ p>

 

Στη συνέχεια, τοποθετήστε το div που περιέχει την progressbar και ένα σύμβολο κράτησης θέσης για να σας δώσει μια ιδέα για το πόσοι χαρακτήρες είναι, επίσης, αριθμητική.






 <div style="height: id="progress" 20px;"> </ p>







 Διαθέσιμο <p> <span id="charCounter"> 255 </ p> χαρακτήρες. </ P>



Τώρα μπορούμε να προχωρήσουμε για να γράψει τον κώδικα σε ένα ξεχωριστό αρχείο JavaScript / jQuery με τις απαραίτητες λειτουργίες, οι οποίες στη συνέχεια περιλαμβάνονται επίσης στην ετικέτα της κεφαλής, θα καλέσουμε check_textarea.js.
Πρώτα απ 'όλα ο καθορισμός των βασικών μεταβλητών? Χαρακτήρων που επιτρέπονται και εκείνες που είναι διαθέσιμες έχουν την ίδια αξία στην αρχή:






 MAX_CHARS = 255?







 Παραμένοντας = MAX_CHARS?



Στη συνέχεια, ορίζουμε τη συνάρτηση που ελέγχει και βελτιώνει progressbar και την καταπολέμηση:





 λειτουργία checkTextareaLength () {





  



 current_length == undefined var = $ ("# limitedOne"). val (). μήκος;

 



 0: $ ("# limitedOne") Val () Μήκος?..



  



 Παραμένοντας = (MAX_CHARS - current_length)?



	

  



 αν (Υπόλοιπο> 0) {

	

    



 $ ("# LimitedOne") ($("# LimitedOne val ") Val () συμβολοσειράς (0, MAX_CHARS))...?



  



 Else {}



    



 $ ("# CharCounter") html (Υπόλοιπο).?



    



 var pv = η math.floor ((((MAX_CHARS-Παραμένοντας) / MAX_CHARS) * 100))?



    



 . $ («Πρόοδος #») Progressbar («αξία», pv)?



  



 }







 }



Ας αναλύσουμε τον κώδικα: η πρώτη γραμμή στο checkTextareaLength παίρνει την τρέχουσα αξία του textarea χρησιμοποιώντας το val λειτουργία () jQuery, μετρούν τότε ο αριθμός των χαρακτήρων που έχουν εισαχθεί από την ανάγνωση το χαρακτηριστικό μήκος.
Στην επόμενη γραμμή δίνει τον αριθμό των χαρακτήρων που διατίθενται για διαφορά. Σε αυτό το σημείο υπάρχουν 2 δυνατότητες.

1. Παραμένοντας η μεταβλητή είναι κάτω από το μηδέν (π.χ. μετά από ένα copy / paste) το αν μπλοκ παίρνει την αξία του textarea και τα όρια είναι έως 255 χαρακτήρες, χρησιμοποιώντας το εγγενές substring JavaScript

 



 $ ("# LimitedOne") ($("# LimitedOne val ") Val () συμβολοσειράς (0, MAX_CHARS))...?

 

2. Παραμένοντας είναι μεγαλύτερη του μηδενός, άλλο μπλοκ κατά το πρώτο διάστημα είναι ενισχυμένη με τον αριθμό των χαρακτήρων που υπολείπονται:

 



 $ ("# CharCounter") html (Υπόλοιπο).?

 

Στη συνέχεια, η συνάρτηση υπολογίζει την αναλογία μεταξύ του μέγιστου αριθμού των διαθέσιμων χαρακτήρων και εκείνων που περιλαμβάνονται σήμερα, η γύρους λειτουργία βιβλιοθήκης της η math.floor αποτέλεσμα (κάτω) με ακρίβεια:

 



 var pv = η math.floor ((((MAX_CHARS-Παραμένοντας) / MAX_CHARS) * 100))?

 

Σε αυτό το σημείο μπορούμε να αναθέσετε μόνο την αξία που διαπιστώθηκε για progressbar

 



 . $ («Πρόοδος #») Progressbar («αξία», pv)?

 

Ας γράψουμε τον κώδικα που εκτελείται για το DOM Ready.
Έχουμε προετοιμάσει το δεσμεύουν progressbar και την πραγματοποίηση των εκδηλώσεων που θέλετε να υποκλέψει: το πάτημα πλήκτρου, ο MouseOut, αλλαγή, και το θάμπωμα των εικόνων. Monitor όλα αυτά να υποκλέψει το γεγονός ότι ο χρήστης πρέπει να χρησιμοποιήσει το copy / paste.
Σημειώστε ότι η κλήση της συνάρτησης είναι να αναβληθεί για λίγα εκατοστά του δευτερολέπτου από τον γηγενή setTimeout λειτουργία ώστε να είναι σίγουρος ότι έχει πάντα την αξία την κατάλληλη στιγμή, όταν ο χρήστης έχει τελειώσει την πληκτρολόγηση.






 $ (Function () {



  



 $ ("# Πρόοδος») Progressbar ().?



  



 $ ("# LimitedOne.") Bind ("πάτημα πλήκτρου αλλαγή MouseOut θολούρα», η λειτουργία () {



    



 setTimeout ("checkTextareaLength ()", 200)?



  



 })?







 })?



Στην ίδια κατηγορία ...
E-Learning
CSS (Μάθημα) CSS (Μάθημα)
Σχεδίαση και Προσβασιμότητα, σύμφωνα με το W3C CSS και XHTML. Ξεκινώντας από 29 €.
HTML (Μάθημα) HTML (Μάθημα)
Η γλώσσα σήμανσης για τον Παγκόσμιο Ιστό από 29 €.
Javascript (Μάθημα) Javascript (Μάθημα)
Πλήρης οδηγός για δέσμες ενεργειών στην πλευρά του πελάτη. Από 39 €.
Σύνδεσμοι διαφημιζόμενων