laucinieks Posted September 15, 2011 Report Posted September 15, 2011 (edited) Tātad, mēģinu uztaisīt jquery funkciju - characters left priekš input fielda. Consolē izmetas - val is undefined eval(substringFunction); Headerī norādīju - <script type="text/javascript" src="js/jquery-1.6.3.min.js"></script> <script type="text/javascript" src="js/jquery.limit-1.2.source.js"></script> <script type="text/javascript"> $('#job-title').limit('30','#job-title-chars'); </script> Body - Job title:<strong><div id="job-title-chars">30</div></strong> characters left <form method="post" action=""> <input type="text" value="" name="job-title" id="job-title" /> limit-1.2.source.js - (function($){ $.fn.extend({ limit: function(limit,element) { var interval, f; var self = $(this); $(this).focus(function(){ interval = window.setInterval(substring,100); }); $(this).blur(function(){ clearInterval(interval); substring(); }); substringFunction = "function substring(){ var val = $(self).val();var length = val.length;if(length > limit){$(self).val($(self).val().substring(0,limit));}"; if(typeof element != 'undefined') substringFunction += "if($(element).html() != limit-length){$(element).html((limit-length<=0)?'0':limit-length);}" substringFunction += "}"; eval(substringFunction); substring(); } }); })(jQuery); Kā to labot? Edited September 15, 2011 by laucinieks Quote
0 laucinieks Posted September 15, 2011 Author Report Posted September 15, 2011 Atradu alternatīvu - <script type='text/javascript'> function countChar(val){ var len = val.value.length; if (len >= 30) { val.value = val.value.substr(0, 30); }else { $('#job-title-chars').text(30 - len); } }; </script> Bet viņš noiet līdz 1, nevis 0. Kā to labot? Quote
0 Zefirs Posted September 15, 2011 Report Posted September 15, 2011 Kā noiet līdz 1? Parādi example @ http://jsfiddle.net/ Quote
0 laucinieks Posted September 15, 2011 Author Report Posted September 15, 2011 (edited) http://jsfiddle.net/bZG75/1/ Tikai, man kaut kas tur nesanāk, neprotu ievietot visu pareizi (neskaitās vispār zemē skaitļi tur). Kā arī, kāds nevarētu izpalīdzēt un iedot man skriptu, kurš pārbauda vai input fields ar specifisku id ir tukšs un, ja ir tukšs, tad parāda pirmo div tagu ar specifisku id, bet ja nav tukšs tad parāda otru div tagu ar specifisku id? Un ja pēc tam atkal mainās no tukša uz pilna vai no pilna uz tukša, tad iepriekšējo div pataisa par neredzamu un jauno par redzamu. Līdzīgi kā man tajā piemērā ar characters left (ieliekot ķeksi parādās izņemot pazūd, bet te tikai - ja ir tukšs, tad viens div, ja pilns tad otrs.) L. Edited September 15, 2011 by laucinieks Quote
0 daGrevis Posted September 15, 2011 Report Posted September 15, 2011 Īsti nesapratu. Es jau vienreiz teicu, ka eval() ir evil. Joprojām ir. Nevajag Viņu nekur, nekur. :D Quote
0 laucinieks Posted September 15, 2011 Author Report Posted September 15, 2011 Uj, jā pareizi :), jāmēģina kaut kādīgi atcerēties. Varbūt vari palīdzēt ar nākošajiem 2 jautājumiem kas ir postā 6 un 4? Quote
0 codez Posted September 15, 2011 Report Posted September 15, 2011 (edited) Kaut kā tā. http://jsfiddle.net/PV4KM/ html: <input type="text" />(no max)<br /> <input max="5" type="text" />(max=5)<br /> <input max="10" type="text" />(max=10)<br /> js: $('body').delegate('input','keydown',function(e){ if (e.keyCode!=8 && $(this).val().length>=$(this).attr('max')){ return false; } }); Edited September 15, 2011 by codez Quote
0 laucinieks Posted September 15, 2011 Author Report Posted September 15, 2011 Codez, skaitītāju arī vajadzētu (cik ir atlicis, kā tajā, kuru es ieliku). Quote
0 Maris-S Posted September 16, 2011 Report Posted September 16, 2011 (edited) Idejai: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Js length count.</title> <script type="text/javascript"> function getElement(id) { if (document.getElementById) { return document.getElementById(id); } else if (document.all) { return document.all[id]; } else if (document.layers) { return document.layers[id]; } } function set_counter(elem) { getElement('message').innerHTML = elem.getAttribute('maxlength') - elem.value.length; } </script> </head> <body> <form id="form_id" name="form_name" action="" method="post"> <div><input type="text" name="name" maxlength="30" onkeyup="javascript: set_counter(this);"></div> <div>Atlikušo simbolu skaits: <span id="message">30</span></div> </form> </body> </html> Vienīgi jāpievērš uzmanība metodei getAttribute un arī eventam onkeyup. Tos vajadzētu pārbaudīt visos pārlūkos. Ja tiek izmantots jquery, tad atbilstošās metodes varētu aizvietot ar atbilstošajām jquery funkcijām, ja mājas lapā jquei izmantosies tikai šai mazajai funkcijai, tad ir vērts papētīt šīs nianses un visu jquey nevilkt līdzi. Ui, vienīgi nepadomāju par darbībām ar pelīti (copy, paste, delete), izskatās onchange inputam nestrādā, vismaz Mozillai negāja, bet domāju informāciju sanāks internetā atrast, ja sanāks laiks paskatīšos. Edited September 16, 2011 by Maris-S Quote
0 laucinieks Posted September 16, 2011 Author Report Posted September 16, 2011 (edited) Par chars remaining, ir uztaisīts :). Tagad tikai - "Kā arī, kāds nevarētu izpalīdzēt un iedot man skriptu, kurš pārbauda vai input fields ar specifisku id ir tukšs un, ja ir tukšs, tad parāda pirmo div tagu ar specifisku id, bet ja nav tukšs tad parāda otru div tagu ar specifisku id? Un ja pēc tam atkal mainās no tukša uz pilna vai no pilna uz tukša, tad iepriekšējo div pataisa par neredzamu un jauno par redzamu. Līdzīgi kā man tajā piemērā ar characters left (ieliekot ķeksi parādās izņemot pazūd, bet te tikai - ja ir tukšs, tad viens div, ja pilns tad otrs.)" L. Edited September 16, 2011 by laucinieks Quote
0 codez Posted September 16, 2011 Report Posted September 16, 2011 (edited) http://jsfiddle.net/PV4KM/2/ Edited September 16, 2011 by codez Quote
0 laucinieks Posted September 16, 2011 Author Report Posted September 16, 2011 codez, tavs variants jsfiddle.net ieliekot (pārveidoto manu - iet), bet manā mājaslapā neiet. nerādās tie divi elementi sānā un atlikušie simboli. Tikai strādā tas, ka pēc 30 simboliem apstājās. Quote
0 laucinieks Posted September 16, 2011 Author Report Posted September 16, 2011 Viss strādā, izņemot vienu - $('body').delegate('#email','keyup',function(e){ var email = document.getElementById('email'); var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; $($t.attr('emptys')).toggle(!filter.test(email.value)); $($t.attr('fulls')).toggle(filter.test(email.value)); }); Kā var uztaisīt pārbaudi vai ievadītais ir ēpasts, ja ir tad izvada vienu, ja nav izvada otru. Pārveidoju codez piemēru. L. Quote
0 codez Posted September 16, 2011 Report Posted September 16, 2011 Ja izmanto jquery aizmirsti - nav tāda document.getElementByID, nav tāda onfocus="javascript: blabalbala", Viss tiek darīts caur jquery $(...)... Quote
Question
laucinieks
Tātad, mēģinu uztaisīt jquery funkciju - characters left priekš input fielda.
Consolē izmetas -
Headerī norādīju -
Body -
limit-1.2.source.js -
Kā to labot?
Edited by laucinieks17 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.