Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ajax,javascript-具有两个事件的启动函数_Javascript_Ajax_Events - Fatal编程技术网

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上都试过了。