我遇到了一个奇怪的问题。我想通过单击输入按钮来搜索产品。我e.which == 13 || e.which == 10
与keypress keyup
触发器一起使用,如下所示。
<form id="fform" method="get" autocomplete="off" action="/search">
<div class="search-inner-container">
<button @if(isListing) { id="buttonSearchTextListing" } aria-label="unf-search-btn" type="submit"
class="search-button search-keyword" value="Search"></button>
<input
style="cursor: text;"
@if(isListing) {
form='fform'
onclick="!this.form && document.getElementById('fform').submit()"
name="srp-searchText"
} else {
name="srp-searchText"
}
id="searchbar-top"
autocomplete="off"
type="searchText" class="searchbar-text search-input bt1 @uuid" aria-label="Search"
value="@text" placeholder='@l("searchBar.buttonLabel")'
hx-get="/search-autocomplete"
hx-vars="'srp-userInput': getSearchbarVal()"
hx-trigger="keyup changed delay:500ms"
hx-target=".searchbar-suggestion-container"/>
<!-- hx-trigger="keyup changed delay:500ms, focus changed delay:500ms" -->
</div>
</form>
$('.searchbar-text').each(function(){
$(this).on("keyup keypress", function(e) {
if(e.which == 13 || e.which == 10) {
// code
}
});
})
我已经在我的笔记本电脑浏览器(chrome 和 Mozilla Firefox)上试过这个。我尝试在桌面/移动显示器上使用元素检查器,它工作正常。但是当我在手机浏览器上尝试时,它不起作用。当我按下回车键时,它会跳转到另一个部分并且不提交表单。这只发生在手机的产品搜索页面上,但在其他页面上,它工作正常。
*当在主页上显示keyCode为13时,我尝试在警报上调试单击的keyCode,但是在产品搜索中没有出现警报keycode
如果你想尝试,只需从我开发的网站测试HERE,然后尝试在桌面 - 手机浏览器中搜索(例如锯)并点击输入
谁能解释为什么会这样?