Qued Posted August 17, 2005 Report Posted August 17, 2005 Ideja tāda - ir forma ar n-tajiem input laukiem, kuriem vajag, teiksim, validāciju ar js funkciju. Negribās visiem rakstīt "onkeyup=blablabla". Bija kaut kāda fiška, ka var javaskripta funkcijai definīcijā norādīt, uz ko tā attiecas - vai kaut kā tā... Nevaru tīklā atrast, kā īsti bija. Varbūt kāds var sniegt palīdzīgu roku?
bubu Posted August 17, 2005 Report Posted August 17, 2005 Nu var pie lapas atvēršanas uzlikt tiem vajadzīgajiem laukiem pēc kautkādas pazīmes (piemēram class nosaukuma) to validāciju: <script type="text/javascript> <!-- var elems=document.getElementsByTagName("input"); for (var i=0, len=elems.length; i<len; i++) { if (elems[i].className == "kautkas") { elems[i].onkeyup = funkcijas_nosaukums; } } // --> </script>
Qued Posted August 17, 2005 Author Report Posted August 17, 2005 >bubu Paldies, šitais man arī bija prātā. Bet kaut kā atmiņā stāv, ka kādreiz ir redzēta arī vienkāršāka iespēja - ka js definīcijā tiek norādīts, kuram laukam js domāts.
bubu Posted August 17, 2005 Report Posted August 17, 2005 ka js definīcijā tiek norādīts, kuram laukam js domāts. 21102[/snapback] Ja tu precīzāk izskaidrosi, ko tu ar to domā "js definīcijā norādīt kam tas domāts", tad uzrakstīšu precīzāku kodu. A tā citādāk es nesaprotu, ko tu ar to domāji. Var jau piemēram definēt funkciju, kurai pados lauka name un vērtību un to funkciju piekarināt visiem laukiem, lai validējās un tad kodā varēsi pats norādīt, kā un ko validēt. Bet nu tas ir diez vai tas, ko te saki...
Qued Posted August 17, 2005 Author Report Posted August 17, 2005 Nu ķipa kaut kas tāds: <javascript for="idkautkam" ....
bubu Posted August 17, 2005 Report Posted August 17, 2005 Manuprāt tas neatbilst nekādiem standartiem. Neredzu nekādu vainu onload skriptam, kas saliks validācijas, kur vajag pēc kautkādām pazīmēm.
PheliX Posted August 17, 2005 Report Posted August 17, 2005 Nu ķipa kaut kas tāds:<javascript for="idkautkam" .... 21105[/snapback] tas man liekas bija IE only
Qued Posted August 17, 2005 Author Report Posted August 17, 2005 Manuprāt tas neatbilst nekādiem standartiem.Neredzu nekādu vainu onload skriptam, kas saliks validācijas, kur vajag pēc kautkādām pazīmēm. 21106[/snapback] Nu vo, iemēģināju. Sūdi vagā - pie sekojoša koda man rāda nebeidzamus popupus: function PlanCalcSum(idd) { alert(idd); } function PlanInit() { var elems=document.getElementsByTagName('input'); for (var i=0, len=elems.length; i<len; i++) { if (elems[i].className.substr(0,3) == 'pla') { elems[i].onkeyup = PlanCalcSum(elems[i].className.substr(3,2)); } } } PlanInit(); Laikam nav riktīgi tas parametrs, ne?
bubu Posted August 17, 2005 Report Posted August 17, 2005 (edited) Kur es rakstīju, ka tam elems.onkeyup jāpiešķir funkcijas rezultāts? Es tak uzrakstīju funkcijas_nosaukums! Vai tu zini, kas ir funkcijas nosaukums? Pie tam, tai fjai parametrā var tikai event objekts būt, nevis pašizdomāti parametri. Edited August 17, 2005 by bubu
Qued Posted August 17, 2005 Author Report Posted August 17, 2005 man vajag, lai tiem input onkeyup ir funkcija ar individuāliem parametriem. Tipa vienam inputam onkeyup="PlanCalcSum('a')", otram - onkeyup="PlanCalcSum('b')" utt. elems.className.substr(3,2) ir tas individuālais parametrs tipa.
bubu Posted August 17, 2005 Report Posted August 17, 2005 (edited) Nu tu vari pašā tajā funkcijā noskaidro, kurš objekts to izsaucis un tikt tā datiem(atribūtiem) klāt. Edited August 17, 2005 by bubu
Qued Posted August 17, 2005 Author Report Posted August 17, 2005 ok, kā var noskaidrot, kas izsauca? sender?
Qued Posted August 17, 2005 Author Report Posted August 17, 2005 Vobšem izlīdzējos tā: elems[i].onkeyup = function() { PlanCalcSum(this) }; Paldies!
bubu Posted August 17, 2005 Report Posted August 17, 2005 (edited) function getTarget(event) { event = (event ? event : window.event); if (!event) return false; // nesanāk dabūt if (event.target) { return (event.target.nodeType == 3) ? event.target.parentNode : event.target; } else { return event.srcElement; } } function kautkas(event) { var elem = getTarget(event); if (!elem) return; // nesanāca dabūt alert(elem.className); // piemēram paziņo class atribūtu alert(elem.value); // vai value atribūtu } // un to uzstāda šādi: elems[i].onkeyup = kautkas; Edit: ā nu jā, vēl variants arī ar anonīmo fju palīdzību.. Edited August 17, 2005 by bubu
Venom Posted August 18, 2005 Report Posted August 18, 2005 un ar tikai "attiecīgiem" elementiem laikam bija domāts pārskaitīt iekš JS pārbaudāmo lauku id un tad vērsties tieši pie document.getElementById(id)
Recommended Posts