Properties som försvinner... ?
8 svar · 576 visningar · startad av aasah
Var sker felet egentligen? Jag hittar inga referenser till shy, och inga externa javascript-filer. Var det rätt länk?
nitro2k01 skrev:
Var sker felet egentligen? Jag hittar inga referenser till shy, och inga externa javascript-filer. Var det rätt länk?
Ja. Det sker i funktionen findWords(row, col) i head. På rad 11 i källan... enligt felmeddelandet i alla fall. (Ursäkta att jag glömde skriva det... :r )
Felet är att hiddenfältet "letterPos" försvinner, eftersom du sätter innerHTML på td:n "currentPos". Flytta hiddenfältet.
Tack emission! :e
Lite längre fram i koden är jag av med nästa hidden.value, men det ligger inte i någon tabell. På vilket sätt trollar jag bort detta value? :q Om jag trycker i någon vit cell öppnas en nedre tabell för input. När jag skriver en bokstav i den översta cellen och trycker på add Letter så händer detta:
FF skrev:
Fel: cwPos has no properties
Källkodsfil: Denna webbsida
Rad: 55
Felmeddelandet triggas i addLetter.
Lägg in felhantering i addLetter() för att ta reda på vad pos är:
function addLetter() {
var td = document.getElementById('currentPos');
var pos = td.innerHTML;
var letterBox = document.getElementById('wordBoxLetter');
var letter = letterBox.value.toUpperCase();
if (letter.length != 1) {
alert ("You can only enter ONE letter in this field!");
}
else {
var cwVisiblePos = document.getElementById('td_'+pos);
cwVisiblePos.value = letter;
alert(pos);
var cwPos = document.getElementById('cw_'+pos);
cwPos.value = letter;
}
alert ('You accessed '+pos+' and entered '+letter);
}
Peter S skrev:
Lägg in felhantering i addLetter() för att ta reda på vad pos är: ...
Det vet jag ju redan, via diverse popup rutor, se tex nedersta raden i koden du visar. Om man trycker i rad B kol 8 är den B8 osv för alla andra vita rutor. (Dock gjorde jag som du föreslog för att försäkra mig om att det inte var något udda scope som gjorde att pos inte syntes i if-satsen, men tack och lov var den B8 där också.)
Ren inspektion visar
<form id="cwForm" method="post" action="tstNew.php">
<input type="hidden" name="cw_A4" value=""><input type="hidden" name="cw_B3" value="">
<input type="hidden" name="cw_B4" value=""><input type="hidden" name="cw_B5" value="">
<input type="hidden" name="cw_B6" value=""><input type="hidden" name="cw_B7" value="">
<input type="hidden" name="cw_B8" value=""><input type="hidden" name="cw_C4" value="">
<input type="hidden" name="cw_C6" value=""><input type="hidden" name="cw_D1" value="">
<input type="hidden" name="cw_D2" value=""><input type="hidden" name="cw_D3" value="">
<input type="hidden" name="cw_D4" value=""><input type="hidden" name="cw_D5" value="">
<input type="hidden" name="cw_D6" value=""><input type="hidden" name="cw_E6" value="">
<input type="hidden" name="cw_F6" value="">
....</form>
Vilket motsvarar alla 17 vita rutor som finns. :q :q :q
Om jag byter ut din alert(pos) mot alert('cw_'+pos); så skrivs cw_B8 ut, och den hidden-variabeln finns ju? Spelar det roll att den ligger i en annan form än den jag skriver i? :q
För övrigt prövade jag att hårdkoda:
var cwPos = document.getElementById('cw_B8');
direkt, och det fältet finns inte heller - precis samma felmeddelande! (Föga förvånande i och för sig, givet pos värde, men...)
Problemet är att document.getElementById() hämtar precis vad dess namn avslöjar: elementet med angivet id. Dina hiddenrutor har inget sådant. Ändra - bums! ;)
Peter S skrev:
Problemet är att document.getElementById() hämtar precis vad dess namn avslöjar: elementet med angivet id. Dina hiddenrutor har inget sådant. Ändra - bums! ;)
Åh! :x Grrrrr.... Det första man blir blind på...! Tusen tack!!! :birp