如何将点击监听器添加到键盘按钮输入?
How to add click listener to a keyboard button enter?
我创建了一个javascript代码,但是点击回车按钮的功能还不能用,怎么用?
html
<div class="landing-pages-form-search">
<input type="text" name="search" id="searchbar" placeholder="Search">
<input type="submit" onclick="return landingSearch();">
</div>
javascript
function landingSearch() {
let input = document.getElementById('searchbar').value
input = input.toLowerCase();
let x = document.getElementsByClassName('landing-pages-column');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
$("#load-more").hide();
}
else {
x[i].style.display = "list-item";
$("#load-more").hide();
}
}
}
请帮帮我,我在哪里可以添加代码点击监听器?
您可以创建一个函数并在受尊重的事件上调用您的其他函数
$('#searchbar').keypress(function(event) { // or keydown
if (event.keyCode == 13) { // code for Enter
landingSearch();
}
});
表单提交无需添加事件监听器。
您只需要将输入字段包装在表单标签中,回车键就会自动起作用。像这样
<form action="">
<div class="landing-pages-form-search">
<input type="text" name="search" id="searchbar" placeholder="Search">
<input type="submit" onclick="return landingSearch();">
</div>
</form>
将input
和button
放在form
中,并将表单的操作设置为您要将数据提交到的页面。然后将您的 JS 挂接到该形式的 submit
事件:
<div class="landing-pages-form-search">
<form action="#" id="search-form">
<input type="text" name="search" id="searchbar" placeholder="Search">
<button type="submit">Submit</button>
</form>
</div>
let loadMore = document.querySelector('#load-more');
document.querySelector('#search-form').addEventListener('submit', function(e) {
e.preventDefault();
let input = (document.querySelector('#searchbar').value || '').toLowerCase();
let x = document.querySelector('.landing-pages-column');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
loadMore.style.display = "none";
} else {
x[i].style.display = "list-item";
loadMore.style.display = "none";
}
}
});
请注意在上面的示例中使用了不显眼的事件处理程序来代替过时的 onclick
属性
在表单中使用输入并在提交事件上设置处理程序的正确方法,它将适用于单击和输入
const form = document.getElementsByClassName('landing-pages-form-search')[0];
form.addEventListener('submit', landingSearch);
function landingSearch(e) {
e.preventDefault();
console.log('enter works');
let input = document.getElementById('searchbar').value
input = input.toLowerCase();
let x = document.getElementsByClassName('landing-pages-column');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
$("#load-more").hide();
}
else {
x[i].style.display = "list-item";
$("#load-more").hide();
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form class="landing-pages-form-search">
<input type="text" name="search" id="searchbar" placeholder="Search">
<input type="submit">
</form>
<div class="landing-pages-column">1</div>
<div class="landing-pages-column">2</div>
<div class="landing-pages-column">3</div>
<div class="landing-pages-column">4</div>
<div class="landing-pages-column">5</div>
我创建了一个javascript代码,但是点击回车按钮的功能还不能用,怎么用?
html
<div class="landing-pages-form-search">
<input type="text" name="search" id="searchbar" placeholder="Search">
<input type="submit" onclick="return landingSearch();">
</div>
javascript
function landingSearch() {
let input = document.getElementById('searchbar').value
input = input.toLowerCase();
let x = document.getElementsByClassName('landing-pages-column');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
$("#load-more").hide();
}
else {
x[i].style.display = "list-item";
$("#load-more").hide();
}
}
}
请帮帮我,我在哪里可以添加代码点击监听器?
您可以创建一个函数并在受尊重的事件上调用您的其他函数
$('#searchbar').keypress(function(event) { // or keydown
if (event.keyCode == 13) { // code for Enter
landingSearch();
}
});
表单提交无需添加事件监听器。 您只需要将输入字段包装在表单标签中,回车键就会自动起作用。像这样
<form action="">
<div class="landing-pages-form-search">
<input type="text" name="search" id="searchbar" placeholder="Search">
<input type="submit" onclick="return landingSearch();">
</div>
</form>
将input
和button
放在form
中,并将表单的操作设置为您要将数据提交到的页面。然后将您的 JS 挂接到该形式的 submit
事件:
<div class="landing-pages-form-search">
<form action="#" id="search-form">
<input type="text" name="search" id="searchbar" placeholder="Search">
<button type="submit">Submit</button>
</form>
</div>
let loadMore = document.querySelector('#load-more');
document.querySelector('#search-form').addEventListener('submit', function(e) {
e.preventDefault();
let input = (document.querySelector('#searchbar').value || '').toLowerCase();
let x = document.querySelector('.landing-pages-column');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
loadMore.style.display = "none";
} else {
x[i].style.display = "list-item";
loadMore.style.display = "none";
}
}
});
请注意在上面的示例中使用了不显眼的事件处理程序来代替过时的 onclick
属性
在表单中使用输入并在提交事件上设置处理程序的正确方法,它将适用于单击和输入
const form = document.getElementsByClassName('landing-pages-form-search')[0];
form.addEventListener('submit', landingSearch);
function landingSearch(e) {
e.preventDefault();
console.log('enter works');
let input = document.getElementById('searchbar').value
input = input.toLowerCase();
let x = document.getElementsByClassName('landing-pages-column');
for (i = 0; i < x.length; i++) {
if (!x[i].innerHTML.toLowerCase().includes(input)) {
x[i].style.display = "none";
$("#load-more").hide();
}
else {
x[i].style.display = "list-item";
$("#load-more").hide();
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form class="landing-pages-form-search">
<input type="text" name="search" id="searchbar" placeholder="Search">
<input type="submit">
</form>
<div class="landing-pages-column">1</div>
<div class="landing-pages-column">2</div>
<div class="landing-pages-column">3</div>
<div class="landing-pages-column">4</div>
<div class="landing-pages-column">5</div>