运行此功能时出现此错误
<script language="javascript" type="text/javascript">
//function for check digit
function check_no(e)
{
if (!((e.keyCode >= 48) && (e.keyCode <= 53)))
{
alert("Solo valores entre 0 y 5 pueden ser ingresados");
e.keyCode = 0;
}
}
</script>
我在c#
的加载页面中调用该函数foreach (GridViewRow grdrow in DGPlanilla.Rows)
{
TextBox tb1 = (TextBox)grdrow.FindControl("TextBox1");
if (tb1 != null)
{
tb1.Attributes.Add("Onkeypress", "check_no()");
}
}
答案 0 :(得分:5)
您粘贴的代码段的问题在于,javascript函数需要单个参数 e ,您尚未提供。您的 e 实际上需要是 window.event 属性才能使此调用生效。
您有两种选择。将您的功能重写为:
function check_no() {
if (!((window.event.keyCode >= 48) ... some other stuff
}
OR,将调用代码重写为
foreach (GridViewRow grdrow in DGPlanilla.Rows)
{
TextBox tb1 = (TextBox)grdrow.FindControl("TextBox1");
if (tb1 != null) { tb1.Attributes.Add("Onkeypress", "check_no(window.event)");
}
答案 1 :(得分:2)
你期望将e传递给函数,它将在FireFox等人中传递。但不是在IE中。您需要规范化您的事件对象。
function check_no(e) {
e = e || window.event;
if (!(e.keyCode >= 48) {
... some other stuff
}
}