gpt4 book ai didi

javascript - 如何在不重定向的情况下提交 HTML 表单?

转载 作者:行者123 更新时间:2023-12-02 15:06:14 24 4
gpt4 key购买 nike

我正在编写一个客户端渲染 Web 应用程序,使用 reactreact-router 进行路由。我已经使用 react-bootstrapform 内使用 input 实现了搜索。

executeSearch(){
...
window.location.href = '/#/search/' + formattedURL
}

let formSettings = {
onSubmit:this.executeSearch.bind(this),
id:"xnavbar-form"
}

const searchButton =
<Button
onClick={this.executeSearch.bind(this)}>
<Glyphicon glyph="search" />
</Button>

const searchInput =
<form>
<Input
type="text"
ref="searchInput"
buttonAfter={searchButton}
placeholder="search"/>
</form>

... Jumping to the render function

<Navbar.Form
{...formSettings}>
{searchInput}
</Navbar.Form>

Mozilla Firefox 中执行搜索按预期工作:按下 Enter 键并单击 searchButton 将我引导至客户端呈现的页面.. ./#/search/....

Google Chrome 中执行搜索的行为如下:单击 searchButton 的工作方式与上面类似(客户端呈现),但按 Enter 键会导致服务器重定向.../?#/搜索....

我发现这是由表单的 submit 属性引起的,如何修改它以在客户端上呈现?

我正在考虑听键盘 ascii 代码(输入)来执行搜索,但这似乎有点困惑。

最佳答案

使用 event.preventDefault() 停止表单提交的默认行为。

这将阻止浏览器提交您的表单,而是将“路由”逻辑留给您来执行您想要的操作。

只需在 executeSearch 函数中接受该事件即可。

executeSearch(event){
...
event.preventDefault();
window.location.href = '/#/search/' + formattedURL;
}

关于javascript - 如何在不重定向的情况下提交 HTML 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35105132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com