我使用OnKeyPress =“clickSearchButton()”从文本框中调用javascript函数
这是我的功能:
function clickSearchButton()
{
var code = e.keyCode || e.which;
var btnSearch = document.getElementById("TopSubBanner1_SearchSite1_btnSearchSite");
if(code == 13);
{
btnSearch.click();
return false;
}
}
我的问题是,当用户点击任何文本框中的输入按钮时,此函数会触发,而不仅仅是调用该函数的文本框。我错过了什么?
编辑:仍然无法正常工作。所以如果有帮助的话,我会把HTML扔出去。
<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" />
此外,如果这有所不同,这是一个ASP.NET页面。
答案 0 :(得分:6)
默认情况下,该事件作为参数传递给您的函数,但您不将其作为参数捕获。如果你捕获它,上面应该可以正常工作。
function clickSearchButton(e)
{
e = e || window.event //for IE compliane (thanks J-P)
//etc
或
function clickSearchButton()
{
var e = arguments[0];
e = e || window.event;
凯文指出,你还有一个额外的分号。
答案 1 :(得分: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;
}
}
并且你的调用方法应该是:
onkeypress="clickSearchButton(event)"