javascript - 在输入时提交表单
问题描述
我在按 Enter 和单击按钮时提交搜索表单时遇到问题。点击工作正常。文本被清除,/search 页面呈现并显示搜索索引。当我按 Enter 时,搜索文本会清除,但没有其他内容。我添加了一个函数handleSubmit,但它不起作用。如何让它在输入时搜索?
handleSubmit(e) {
e.preventDefault(e);
document.getElementById("search-input")
.addEventListener("keydown", function (event) {
// event.persist();
if (event.keyCode === 13) {
document.getElementById("search-button").click();
}
});
this.setState( {
searchItem: "",
})
};
render() {
return (
<div id="search-form">
<form>
<input
type="text"
id="search-input"
placeholder="Search videos"
value={this.state.searchItem}
onChange={this.update()}
/>
<button type="submit" id="search-button" onClick={this.handleSubmit}>
<Link to={`/search?search=${this.state.searchItem}`}><img id="search-icon" src="https://image.flaticon.com/icons/svg/49/49116.svg" alt="" /></Link>
</button>
</form>
</div>
);
}
解决方案
您的 EventListener 不能在 handleSubmit 函数内。
form.addEventListener('submit', handleSubmit());
推荐阅读
- javascript - 将显示的值更改为名称
- r - 用另一列的信息填充NA
- mysql - 数 GB 大小的 innodb 数据文件
- scala - scala.util.Try 块的返回值
- html - Bootstrap 手风琴仅适用于 4 上的 2 个项目
- python - .only().prefetch_related() 给出 'ManyToOneRel' 对象没有属性 'attname'
- excel - 显示滚动时组合框有问题
- c# - 使用 Predicate Builder 的表达式太长
- angular - “ContactComponent”类型上不存在属性“formSubmitted”
- reactjs - 单个输入上的多个字段名称