如何解决JavaScript 使用 Enter 运行字段搜索
我对编程和一切都很陌生,现在我正在尝试改进一些内部程序和脚本。其中之一是我们的预订系统。它使用 JS 和字段搜索来搜索所有项目,但按 Enter 而不是单击按钮时它不起作用。 我尝试使用tapermonkey 脚本来修复它,但在按下回车键时它没有捕捉到输入值。
这是输入和搜索按钮:
<input name="b$s111$l108s111$ctl00$googlesearch$i"
type="text"
maxlength="3998"
id="b_s111_l108s111_ctl00_googlesearch_i"
class="Edit"
onfocus="HighlightTextBox(this,'b$s111$l108s111$ctl00$googlesearch',false,false);"
datavalidation="false"
data-sectionid="111"
data-fieldid="1841"
onchange="setDirty('b_s111_l108s111_ctl00_googlesearch_IsDirty');
if(!IsLegalInputValue(this,'Search criteria')){return false;}"
onblur="if(!IsLegalInputValue(this,'Search criteria')){return false;}ResetTextBox(this,'white');"
onkeydown="CheckForShiftTab(event);if(event.keyCode == 9 && !event.ctrlKey){if(!IsLegalInputValue(this,'Search criteria')){return false;}}"
data-type="String"
autocomplete="off"
>
<button id="b_s111__fieldHelpSearch"
tabindex="10"
role="button"
type="button"
class="BaseButton SectionButton"
onclick="baseButtonClick(event,'b$s111$_fieldHelpSearch',true,'action:_dofieldhelpsearch');"
onkeydown="this.onclick(event);"
>
这是我写的脚本:
var input = document.getElementById("b_s111_l108s111_ctl00_googlesearch_i");
input.addEventListener("keydown",function(event) {
if (event.keyCode === 13) {
document.getElementById("b_s111__fieldHelpSearch").click();
}
});
解决方法
如果你想要输入框内的值,那么我认为这一行没有意义document.getElementById("b_s111__fieldHelpSearch").click();
相反,您可以这样做:
const input = document.getElementById('b_s111_l108s111_ctl00_googlesearch_i')
input.addEventListener('keydown',(e)=>{
if(e.keyCode === 13){
console.log(e.target.value)
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。