Javascript KeyPress feature issue

I am calling a javascript function from a textbox using OnKeyPress = "clickSearchButton ()"

Here is my function:

function clickSearchButton()
{
  var code = e.keyCode || e.which;
  var btnSearch = document.getElementById("TopSubBanner1_SearchSite1_btnSearchSite");
  if(code == 13);
      {          
           btnSearch.click(); 
           return false; 
      } 
}

      

My problem is that this function fires when the user presses the enter button in any text box, not just the one that calls the function. What am I missing?

EDIT: Still not working correctly. So I'll throw my HTML in there in case it helps.

<input name="TopSubBanner1:SearchSite1:txtSearch" type="text" id="TopSubBanner1_SearchSite1_txtSearch" OnKeyPress="clickSearchButton(this)" /><input type="submit" name="TopSubBanner1:SearchSite1:btnSearchSite" value="Search" id="TopSubBanner1_SearchSite1_btnSearchSite" />

      

Also, this is an ASP.NET page, if that matters.

+1


a source to share


2 answers


The default event is passed as an argument to your function, but you don't capture it as a parameter. If you capture it, then it should work correctly.

function clickSearchButton(e)
{
   e = e || window.event //for IE compliane (thanks J-P)
   //etc

      

or



function clickSearchButton()
{
   var e = arguments[0];
   e = e || window.event;

      

Also you have an extra semicolon as Kevin pointed out.

+6


a source


function clickSearchButton(e)
{
  var code;

if(window.event)
    code = e.keyCode;
else
   code = e.which;

var btnSearch = document.getElementById("TopSubBanner1_SearchSite1_btnSearchSite");
  if(code == 13)
      {          
           btnSearch.click(); 
           return false; 
      } 
}

      

and your calling method should be:



onkeypress="clickSearchButton(event)"

      

+4


a source







All Articles