parentNode in Javascript non sembra funzionare per me
-
22-09-2019 - |
Domanda
Io uso una casella di testo all'interno di una GridView e la sua onkeyup funzione non sembra funzionare ....
Ecco il mio GridView
<asp:TemplateField>
<HeaderStyle Width="12%" />
<HeaderTemplate>
Advance Detucted
</HeaderTemplate>
<ItemTemplate>
<asp:TextBox ID="TxtAdvanceDeducted" runat="server"
CssClass="text_box_height_14_width_50" onkeyup="check('this');"></asp:TextBox>
</ItemTemplate>
<ItemStyle Width="12%" HorizontalAlign="Center" />
</asp:TemplateField>
E la mia funzione javascript,
var table = el.parentNode.parentNode.parentNode;
for (var y = 0; y < table.rows.length; y++)
{
for (var x = 0; x < table.rows[y].cells.length; x++)
{
if (table.rows[y].cells[x] == el)
{
alert("Row:" + y + " Cell: " + x);
}
}
}
Quando ispezionato tramite barra degli strumenti webdeveloper ho ottenuto l'errore,
el.parentNode is undefined
Ogni suggerimento ...
alert(table.rows.length)
mi ha dato 3 ... Ma io ho 2 file + una riga di intestazione ...
Soluzione
Sostituire
onkeyup="check('this');" // you are passing a string 'this' to the function.
con
onkeyup="check(this);" // you are passing a reference of the element.
Altri suggerimenti
è questo essere passato come stringa piuttosto che un oggetto è forse dovrebbe essere:
onkeyup = "controllo (questo)
Questo potrebbe essere giù per la sintassi asp però. Un buon modo per testare è vigile o utilizzare console.log in Firebug per scoprire ciò che viene passato alla funzione per es.
console.log(el);
o
alert(el);
come prima riga della funzione
Non ho dimestichezza con ASP:? Sono le citazioni intorno questo richieste
check('this') => check(this)
saluti,
Stijn