错误:'keyCode'为null或不是对象

2 javascript c#

我运行此功能时收到此错误

<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>
Run Code Online (Sandbox Code Playgroud)

我在c#的load页面中调用该函数

foreach (GridViewRow grdrow in DGPlanilla.Rows)
                {
                    TextBox tb1 = (TextBox)grdrow.FindControl("TextBox1");
                    if (tb1 != null)
                    {
                        tb1.Attributes.Add("Onkeypress", "check_no()");
                    }

                }
Run Code Online (Sandbox Code Playgroud)

Rob*_*ine 5

你粘贴的代码片段的问题是,javascript函数需要一个你没有提供的参数e.您的e实际上需要是此调用工作的window.event属性.

你有两个选择.将您的功能重写为:

function check_no() { 
  if (!((window.event.keyCode >= 48) ... some other stuff
}
Run Code Online (Sandbox Code Playgroud)

或者,重写调用代码

foreach (GridViewRow grdrow in DGPlanilla.Rows) 
{ 
  TextBox tb1 = (TextBox)grdrow.FindControl("TextBox1"); 
  if (tb1 != null) { tb1.Attributes.Add("Onkeypress", "check_no(window.event)"); 
}
Run Code Online (Sandbox Code Playgroud)