JohanDerks
Verenigingslid
- Lid geworden
- 2 dec 2006
- Berichten
- 82
Ondertussen heb ik verschillende fouten gevonden in mijn vorige probleemprogramma, zodanig, dat de titel "Referenceerror i.v.m. (verkeerd?) gebruik van included javascriptdocument?" niet meer van toepassing is.
Eigenlijk gaat het om een heel complexe programmastructuur, bedoeld voor kenners van het Esperanto. Daarin begin ik met de gebruiker te laten bepalen, welke talen gebruikt moeten worden om uit te rekenen of een bepaald woord (ingevoerd door de gebruiker) voldoende "internationaal" is (en dus geësperantiseerd moet worden). Dat zijn zes europese talen - die staan vast - maar welke de zevende en laatste is, mag de gebruiker bepalen: italiaans of portugees, of zoiets als allebei voor de helft. Dat gebeurt met radio buttons:
Om de vertalingen van het ingevoerde woord in de zeven talen mee te tellen is er de functie "kalkulu()", maar die werkt soms niet, of ik krijg als foutmelding "lE is niet gedefinieerd". Om met het laatste te beginnen. De included js-documenten zijn:
Dat lE niet is gedefinieerd klopt, maar ik dacht dat op te lossen door in IMWesp.js te zettenL:
(De reden voor die regel is, dat IMWesp.js ook voor een ander PHP-document gebruikt wordt, waar lE wel al gedefinieerd is.)
Over de functie, die eerst problemen gaf, heb ik toch nog vragen.
Ik vraag me bijv. af:
1. Waarom wordt getElementsByName afgeraden? getElementsById is een extra attribuut, terwijl "name", denk ik, al een verplicht attribuut is.
2. Is "else {return false;}" overbodig of zelfs fout? Want er zijn maar drie mogelijkheden voor x.value: ip, it of pt.
3. fenro is de array van zes vaste talen, die meetellen. Moet ik dáár misschien [0] achter zetten?
Eigenlijk gaat het om een heel complexe programmastructuur, bedoeld voor kenners van het Esperanto. Daarin begin ik met de gebruiker te laten bepalen, welke talen gebruikt moeten worden om uit te rekenen of een bepaald woord (ingevoerd door de gebruiker) voldoende "internationaal" is (en dus geësperantiseerd moet worden). Dat zijn zes europese talen - die staan vast - maar welke de zevende en laatste is, mag de gebruiker bepalen: italiaans of portugees, of zoiets als allebei voor de helft. Dat gebeurt met radio buttons:
Code:
<input type="radio" name="pI" value="it" />la itala<br />
<input type="radio" name="pI" value="pt" />la portugala<br />
<input type="radio" name="pI" value="ip" checked="checked" />la itala aŭ la portugala<br />
Code:
<script type="text/javascript" src="IMWeu.js">
</script>
<script type="text/javascript" src="IMWesp.js">
</script>
Code:
for (var i=0; i<2; i++) {
if (lE !== undefined) {if(lE.elements[allingvo][i].checked) {lE.elements[allingvo][i].checked = false;}}
}
Over de functie, die eerst problemen gaf, heb ik toch nog vragen.
Code:
function kalkulu() {
var mal = "", nbro = 0;
elmPI = document.getElementsByName("pI");
elmBazLgo = document.getElementsByName(fenro[i]);
if (elmPI.value == "ip") { // lZ is gedeclareerd als document.forms['lingvojZamenhofaj'], it en pt zijn namen van variabelen in het formulier
if (lZ.it.value == 1 || lZ.pt.value == 1) {
nbro += 1;
}
}
else if (elmPI.value == "it" && lZ.it.value == 1) {
nbro += 1;
}
else if (elmPI .value == "pt" && lZ.pt.value == 1) {
nbro += 1;
}
for (var i = 0; i < 6; i++) {
elmBazLgo = document.getElementsByName(fenro[i])[0];
if (elmBazLgo.value == 1) {
nbro += 1;
} // elmBazLgo.value estas automate 0, kiam neniu radibutono estas markita pro kolapso
else if (elmBazLgo.value === 0) {
continue;} // sum += 1 ne aperas, ĉar tio estas en ĉiuj kazoj 7.
else {
alert("(Malfermu la pa\u011Don de lingvo kun kodo '" + fenro[i] + "' kaj)\n " +
"marku la (ne)similecon de la traduko de '" + lZ.tradukVorto.value + "' al tiu lingvo!");
}
}
if (nbro < 4) {
mal = "mal";
document.getElementById("stop").style.display="inline";
document.getElementById("plue").style.display="inline";
} else {
document.getElementById("plue").style.display="inline";
}
lZ.rezulto.value = nbro + ", " + mal + "pli ol duono de 7 Zamenhofaj lingvoj";
}
1. Waarom wordt getElementsByName afgeraden? getElementsById is een extra attribuut, terwijl "name", denk ik, al een verplicht attribuut is.
2. Is "else {return false;}" overbodig of zelfs fout? Want er zijn maar drie mogelijkheden voor x.value: ip, it of pt.
3. fenro is de array van zes vaste talen, die meetellen. Moet ik dáár misschien [0] achter zetten?
Laatst bewerkt: