parentNode в Javascript, кажется, не работает для меня - PullRequest
0 голосов
/ 25 февраля 2010

Я использую текстовое поле внутри gridview, и его функция onkeyup, похоже, не работает ....

Вот мой гридвью

<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>

И моя функция 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);
        }
    }
}

При проверке через панель инструментов веб-разработчика я получил ошибку,

el.parentNode is undefined

Любое предложение ...

alert(table.rows.length) дал мне 3 ... Но у меня есть 2 строки + одна строка заголовка ...

Ответы [ 3 ]

2 голосов
/ 25 февраля 2010

Заменить

onkeyup="check('this');" // you are passing a string 'this' to the function.

с

onkeyup="check(this);" // you are passing a reference of the element.
0 голосов
/ 25 февраля 2010

Я не знаком с ASP: цитаты вокруг это требуется?

check('this') => check(this)

С уважением,
Стейн

0 голосов
/ 25 февраля 2010

это передается в виде строки, а не объекта, возможно, должно быть:

OnKeyUp = "Проверка (это)

Это может быть до синтаксиса asp. Хороший способ проверить это оповещение или использовать console.log в firebug, чтобы узнать, что передается функции, например

console.log(el);

или

alert(el);

в качестве первой строки функции

...