【发布时间】:2022-01-21 22:03:59
【问题描述】:
我遇到了一个奇怪的问题。我想通过单击输入按钮来搜索产品。我使用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,但在产品搜索中未出现警报键码
如果你想尝试,就从我开发的一个网站HERE测试,然后在桌面-手机浏览器中搜索(例如saw)并点击进入
谁能解释为什么会这样?
【问题讨论】:
-
不确定这是什么,我知道不是 - HTML
-
Jon P 刀片语法,例如,包括对内联 if 语句的 @if 的使用,并且它的核心都是 HTML,还有另一种未标记的语言使用,但您应该查看 Laravel 的 HTML还有 Ionic 的 HTML 等等,你会看到它在其他语言/库/框架中是如何演变的
-
这是htmx @JonP
-
@RelebohileNkosi,它的核心不是 HTML。它是呈现 HTML 的其他东西。它是什么,很重要,许多框架(角度、vuejs 等)反对 推荐使用 jquery,当它不是普通的旧 html 时,确切地知道我们正在处理的内容很重要。例如
hx-trigger="keyup changed delay:500ms"如何与$(this).on("keyup keypress"交互?? -
我在我的手机 (android) 浏览器上试用了您的网站,它已经对我很好。我可以通过按手机键盘上的回车键进行搜索。我认为你应该在你的开发服务器上的按键上添加一个警报,然后在它不适合你的手机上尝试它,以确保该手机是否发送了你所期望的相同的密钥代码。
标签: javascript jquery htmx