Jump to content
php.lv forumi

Recommended Posts

Posted

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?

Posted

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>

Posted

>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.

Posted
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...

Posted

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.

Posted
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?

Posted (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 by bubu
Posted

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.

Posted (edited)

Nu tu vari pašā tajā funkcijā noskaidro, kurš objekts to izsaucis un tikt tā datiem(atribūtiem) klāt.

Edited by bubu
Posted (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 by bubu
Posted

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)

×
×
  • Create New...