ajax,javascript-具有两个事件的启动函数
我有一个功能,我需要开始在点击或按下回车键。 所以我需要像这样的东西:ajax,javascript-具有两个事件的启动函数,javascript,ajax,events,Javascript,Ajax,Events,我有一个功能,我需要开始在点击或按下回车键。 所以我需要像这样的东西: <BUTTON onclick="searchProduct()" or onkeypress="searchProduct()">Hledat</BUTTON> Hledat 但只在按下回车键时。没有钥匙 这对于Ajax或普通javascript是可能的吗 好吧,没想到它这么复杂,所以我给你我的全部代码,因为你的答案不适用于我的全部代码 <!DOCTYPE html> <HTM
<BUTTON onclick="searchProduct()" or onkeypress="searchProduct()">Hledat</BUTTON>
Hledat
但只在按下回车键时。没有钥匙
这对于Ajax或普通javascript是可能的吗
好吧,没想到它这么复杂,所以我给你我的全部代码,因为你的答案不适用于我的全部代码
<!DOCTYPE html>
<HTML>
<HEAD>
<META charset="UTF-8" />
<TITLE>Searchin engine</TITLE>
</HEAD>
<BODY>
<SCRIPT src="js_search.js"></SCRIPT>
<FORM>
<INPUT type="text" id="word" size="40" />
</FORM>
<BUTTON onclick="searchProduct(document.getElementById('word').value)">Hledat</BUTTON>
<P id="display"></P>
</BODY>
</HTML>
搜索引擎
赫莱达特
只需在javascript中添加事件侦听器(例如,在searchProduct()函数的上方)
document.getElementById('button').addEventListener('click',function(){
searchProduct(document.getElementById('word').value);
})
document.getElementById('button')。addEventListener('keydown',函数(e){
如果(e.keyCode==13)searchProduct(document.getElementById('word').value);//则keyCode 13相当于enter键
})
功能搜索产品(val){
警报(val);
}
Hledat
只需在javascript中添加事件侦听器(例如,在searchProduct()函数的上方)
document.getElementById('button').addEventListener('click',function(){
searchProduct(document.getElementById('word').value);
})
document.getElementById('button')。addEventListener('keydown',函数(e){
如果(e.keyCode==13)searchProduct(document.getElementById('word').value);//则keyCode 13相当于enter键
})
功能搜索产品(val){
警报(val);
}
Hledat
您可以执行以下操作:
<BUTTON onclick="searchProduct()" onkeypress="searchProductKeyPress(event)">Hledat</BUTTON>
function searchProductKeyPress(event) {
if (event.which == 13 || event.keyCode == 13) {
searchProduct();
return false;
}
return true;
}
Hledat
功能搜索ProductKeyPress(事件){
if(event.which==13 | | event.keyCode==13){
搜索产品();
返回false;
}
返回true;
}
您可以执行以下操作:
<BUTTON onclick="searchProduct()" onkeypress="searchProductKeyPress(event)">Hledat</BUTTON>
function searchProductKeyPress(event) {
if (event.which == 13 || event.keyCode == 13) {
searchProduct();
return false;
}
return true;
}
Hledat
功能搜索ProductKeyPress(事件){
if(event.which==13 | | event.keyCode==13){
搜索产品();
返回false;
}
返回true;
}
在函数中,您可以像这样传递事件:
<BUTTON onclick="searchProduct(event)" onkeypress="searchProduct(event)">Hledat</BUTTON>
在函数中,您可以通过以下方式传递事件:
<BUTTON onclick="searchProduct(event)" onkeypress="searchProduct(event)">Hledat</BUTTON>
将id=“btn\u搜索\u产品”设置为您的按钮
var btn_search_product = document.getElementById("btn_search_product");
btn_search_product.addEventListener("keydown", function (e) {
if (e.keyCode === 13) {
searchProduct(e);
}
});
我实际上使用的是evento库
它将是:
evento.add(btn_search_product, "keydown", function (e) {
if (e.keyCode === 13) {
searchProduct(e);
}
});
将id=“btn\u搜索\u产品”设置为您的按钮
var btn_search_product = document.getElementById("btn_search_product");
btn_search_product.addEventListener("keydown", function (e) {
if (e.keyCode === 13) {
searchProduct(e);
}
});
我实际上使用的是evento库
它将是:
evento.add(btn_search_product, "keydown", function (e) {
if (e.keyCode === 13) {
searchProduct(e);
}
});
理想情况下,您应该在元素上有单独的事件,并且可以调用特定的函数或触发元素的单击
如果您希望输入和按钮单击工作相同,我建议触发单击事件。这将确保更新所有UI状态并完成所有处理。原因是,我们可以为不同的处理向按钮添加多个处理程序,调用函数可能不会调用其他代码
功能按键(e){
如果(e.keyCode==13){
document.getElementById(“btn”)。单击();
}
}
函数notify(){
日志(“处理…”)
}
通知
理想情况下,您应该在元素上有单独的事件,并且输入
,您可以调用特定的函数,也可以触发元素的单击
如果您希望输入和按钮单击工作相同,我建议触发单击事件。这将确保更新所有UI状态并完成所有处理。原因是,我们可以为不同的处理向按钮添加多个处理程序,调用函数可能不会调用其他代码
功能按键(e){
如果(e.keyCode==13){
document.getElementById(“btn”)。单击();
}
}
函数notify(){
日志(“处理…”)
}
Notify
大多数浏览器的可能重复项可能会在tab和enterButton没有关键事件时执行onclick,因为搜索词也有某种文本输入,如果tab和enterButton没有关键事件,则大多数浏览器可能会执行onclick。如果搜索词也有某种文本输入,则应该让文本字段对Enter而不是Button作出反应。这看起来不错,但是,如果我需要处理变量,该如何处理?以何种方式处理变量?我需要从id为“word”的输入中获取值,并在函数searchProduct()中获取它。但是,如果元素按钮中没有事件,我就不能这样做。@MichalVlasák我已经更改了代码以反映您的需要。这应该对你有用:)谢谢,但如果我按Enter键,页面将重新加载,可能会运行脚本,输入被清除,而不会发生其他任何事情。我在Firefox和Google Chrome上都试过。嗨,看起来不错,但是如果我需要使用变量,该怎么做?用什么方式使用变量?我需要从id为“word”的输入中获取值,并在函数searchProduct()中获取它。但是,如果元素按钮中没有事件,我就不能这样做。@MichalVlasák我已经更改了代码以反映您的需要。这应该对你有用:)谢谢,但如果我按Enter键,页面将重新加载,可能会运行脚本,输入被清除,而不会发生其他任何事情。我在Firefox和Google Chrome上都试过了。