2009-05-15 10 views
1

Ich nenne eine Javascript-Funktion aus einer Textbox unter Verwendung OnKeyPress = "clickSearchButton()"Problem KeyPress Javascript-Funktion

Hier ist meine Funktion:

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

Mein Problem ist, dass diese Funktion wird ausgelöst, wenn die Der Benutzer drückt die Eingabetaste in einer beliebigen Textbox, nicht nur in der, die die Funktion aufruft. Was vermisse ich?

EDIT: Immer noch nicht richtig funktioniert. Also werde ich meinen HTML-Code dort hinwerfen, wenn das hilft.

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

Auch dies ist eine ASP.NET-Seite, wenn das einen Unterschied macht.

+1

Wie verbinden Sie Ihre ClickSearchButton-Funktion mit dem OnKeyPress-Ereignis? – RichieHindle

+0

Sie sollten den Titel ändern, um nicht so vage zu sein. Erwähnen Sie mindestens das Tastendruckereignis. –

+1

Sie sollten das nicht an Ihren Handler weitergeben. – James

Antwort

6

Die Veranstaltung ist standardmäßig als Argument an Ihre Funktion übergeben, aber Sie nicht als Parameter zu erfassen. Wenn Sie es erfassen, sollte das oben genannte ordnungsgemäß funktionieren.

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

oder

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

Auch Sie haben ein zusätzliches Semikolon als Kevin hingewiesen.

+1

Alternativ 'Argumente [0]'. – Gumbo

+0

Sie wollen auch, dass es in IE funktioniert. Also e = e || Fenster.Ereignis; – James

4
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; 
     } 
} 

und Ihre Rufmethode sein sollte:

onkeypress="clickSearchButton(event)"