Qued Posted August 17, 2005 Report Share 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? Link to comment Share on other sites More sharing options...
bubu Posted August 17, 2005 Report Share 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> Link to comment Share on other sites More sharing options...
Qued Posted August 17, 2005 Author Report Share 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. Link to comment Share on other sites More sharing options...
bubu Posted August 17, 2005 Report Share 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... Link to comment Share on other sites More sharing options...
Qued Posted August 17, 2005 Author Report Share Posted August 17, 2005 Nu ķipa kaut kas tāds: <javascript for="idkautkam" .... Link to comment Share on other sites More sharing options...
bubu Posted August 17, 2005 Report Share 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. Link to comment Share on other sites More sharing options...
PheliX Posted August 17, 2005 Report Share Posted August 17, 2005 Nu ķipa kaut kas tāds:<javascript for="idkautkam" .... 21105[/snapback] tas man liekas bija IE only Link to comment Share on other sites More sharing options...
Qued Posted August 17, 2005 Author Report Share 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? Link to comment Share on other sites More sharing options...
bubu Posted August 17, 2005 Report Share 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 Link to comment Share on other sites More sharing options...
Qued Posted August 17, 2005 Author Report Share 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. Link to comment Share on other sites More sharing options...
bubu Posted August 17, 2005 Report Share 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 Link to comment Share on other sites More sharing options...
Qued Posted August 17, 2005 Author Report Share Posted August 17, 2005 ok, kā var noskaidrot, kas izsauca? sender? Link to comment Share on other sites More sharing options...
Qued Posted August 17, 2005 Author Report Share Posted August 17, 2005 Vobšem izlīdzējos tā: elems[i].onkeyup = function() { PlanCalcSum(this) }; Paldies! Link to comment Share on other sites More sharing options...
bubu Posted August 17, 2005 Report Share 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 Link to comment Share on other sites More sharing options...
Venom Posted August 18, 2005 Report Share 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) Link to comment Share on other sites More sharing options...
Recommended Posts