Vibin Jith
Vibin Jith

Reputation: 931

My javascript code not working in mozilla firefox

This is my code for making textbox accept number only.

<asp:TextBox ID="txtRotationNo" runat="server" onkeydown="return NumberOnly();" CssClass="textbox"></asp:TextBox>

function NumberOnly () {
    if(!(event.keyCode>=48 && event.keyCode<=57) && event.keyCode!=8) {
        event.returnValue=null;
    }
}

This code is working in Chrome and Opera, but not in firefox.

Can you tell me what's wrong with this code?

Upvotes: 4

Views: 1844

Answers (4)

ashish.chotalia
ashish.chotalia

Reputation: 3746

find the list of javascript validation function here,quite handy during development.

Thanks,

Ashish Chotalia

Upvotes: 0

Jla
Jla

Reputation: 11374

On the contrary to IE, 'event' is not a global variable in Firefox. So you've got to pass the desired pressed key informations as an argument.

Upvotes: 0

Delan Azabani
Delan Azabani

Reputation: 81384

Many things wrong with the code, including the lack of an event argument, plus the wrong way about cancelling the event. Here, just replace the code with this:

function NumberOnly(e) {
  e = e || window.event; // remove this if you don't need IE support
  if (!(e.keyCode >= 48 && e.keyCode <= 57) && e.keyCode != 8)
    e.preventDefault();  // standard method of cancelling event
  return false;          // IE method of cancelling event
}

Upvotes: 8

2ndkauboy
2ndkauboy

Reputation: 9377

Firefox needs the event within the call of the handler and it needs to return "false" to ignore an action. This code might work:

function NumberOnly(event) {
  if(!(event.keyCode>=48 && event.keyCode<=57) && event.keyCode!=8) {
    event.returnValue=null;
    return false;
  }
}

But I think you can skip the event.returnValue=null;

Upvotes: 0

Related Questions