Toon posts:

javascript probleem met blokhaken

Pagina: 1
Acties:
  • 41 views sinds 30-01-2008

Verwijderd

Topicstarter
Hoi ik zit met een probleempje met javascript. Ik heb de volgende functie:

<script>
var MAX_ALLOWED=12;
var clickedData=new Array(false,false,false,false);
function itemsClicked(){var i=0;for(var j=0;j<clickedData.length;j++)i+=clickedData[j]?1:0;return(i);}
function itemClicked(_v)
{
var ALLOW_THIS=true;
var x=itemsClicked();
if (x>=MAX_ALLOWED && !clickedData[_v])
{
alert('U mag maar 12 fotos selecteren voor de site, om een andere foto te selecteren moet u er eerst eentje deselecteren!')
ALLOW_THIS=false;
}
else
{
clickedData[_v]=clickedData[_v]?false:true;
eval("document.exf1.r"+_v+".clicked=false;");
}
return (ALLOW_THIS);
}
</script>

Deze kijkt in een form hoeveel checkboxen er zijn aangevinkt en stelt een maximaal aantal in. Nou verwijst de eval("document.exf1.r"+_v+".clicked=false;"); naar de ckeckbox naam r_V waar _v staat voor een index nr wat voor iedere ckeckbox uniek is. Zo heb je dus checkboxen met name=r1, name=r2 ........ Nu heb ik om de waarden van deze checkboxen in php beter te kunnen verwerken de naam veranderd in een array dus checkboxen met name=r[1], name=r[3] ......
in de eval("document.exf1.r"+_v+".clicked=false;"); functie zou ik dus ook moeten verwijzen naar r[_v] maar ik krijg het niet voor elkaar dat javascript die blokhaken accepteert. dus omdat de blokhaken niet worden gezien door js krijg ik telkens de melding dat de document.exf1.r1 niet bestaat. ik heb het als volgt geprobeert:
document.exf1.r["+_v+"].clicked=false;
document.exf1.r"[+_v+]".clicked=false;
en nog op talloze andere manieren. Maar die gaat ik hier maar niet allemaal neer zetten. Maar mijn vraag is dus is er een manier of trucje dat js wel ziet dat er blokhaken om _v moeten staan??

Verwijderd

Deze vraag komt gelukkig maar 3 keer per week voorbij. :P

document.forms['formnaam'].elements['r[' + _v + ']'].clicked

En eval is verschrikkelijk ranzig, en moet je altijd proberen te vermijden.

  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

Gebruik de notatie document.forms[index].elements[index], ben je meteen van die eval() af.

JavaScript:
1
document.forms["exf1"].elements["r" + _v].clicked=false;

Today's subliminal thought is:


  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 09:52

Pelle

🚴‍♂️

Zie Cheatah.. komt te vaak voorbij dit.

Dit topic is gesloten.