我在gridview中使用了一个文本框,它的onkeyup函数似乎不起作用....
这是我的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>
我的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);
}
}
}
通过webdeveloper工具栏检查时出现错误,
el.parentNode is undefined
任何建议......
alert(table.rows.length)
给了我3 ...但我有2行+一个标题行......
答案 0 :(得分:2)
替换
onkeyup="check('this');" // you are passing a string 'this' to the function.
与
onkeyup="check(this);" // you are passing a reference of the element.
答案 1 :(得分:0)
这是作为字符串而不是对象传递的,或许应该是:
的onkeyup =“校验(这)
这可能取决于asp语法。测试的一个好方法是警告或使用firebug中的console.log来找出传递给函数的内容,例如。
console.log(el);
或
alert(el);
作为函数的第一行
答案 2 :(得分:0)
我不熟悉ASP:是否需要这个的引用?
check('this') => check(this)
的问候,
斯泰恩