admin管理员组

文章数量:1419215

I am getting this error when i run this function

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

I call the function in my load page in c#

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

                }

I am getting this error when i run this function

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

I call the function in my load page in c#

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

                }
Share Improve this question edited Jul 9, 2009 at 23:03 Steve Harrison 126k17 gold badges89 silver badges72 bronze badges asked Jul 9, 2009 at 22:48 Gilberto MunozGilberto Munoz
Add a ment  | 

2 Answers 2

Reset to default 5

The problem with the snippet you've pasted, is that the javascript function expects a single argument e, which you've not supplied. Your e actually needs to be the window.event property for this call to work.

You have two options. Either rewrite your function to be:

function check_no() { 
  if (!((window.event.keyCode >= 48) ... some other stuff
}

OR, rewrite the calling code to be

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

You are expecting e to be passed into the function, which it will in FireFox et al. but not in IE. You need to normalize your event object.

function check_no(e) {
    e = e || window.event;
    if (!(e.keyCode >= 48) {
     ... some other stuff
    }
}

本文标签: cError 39keyCode39 is null or not an objectStack Overflow