Jump to content
php.lv forumi

Javascript funkcijas piesaistīšana čupai lauku


Recommended Posts

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 post
Share on other sites

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 post
Share on other sites

>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 post
Share on other sites
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 post
Share on other sites
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 post
Share on other sites

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
Link to post
Share on other sites

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 post
Share on other sites

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
Link to post
Share on other sites
×
×
  • Create New...