Form表单的输入框按Enter后,页面被刷新了

Form表单的输入框按Enter后,页面被刷新了

  今天下午在实现一个通过在输入框按回车触发发送查询请求的前端实现,遇到了一个问题。整个表单非常的简单,一个输入框和一个按钮,点击按钮会触发绑定的提交的处理逻辑。在输入框中,按了回车,页面会被刷新了,导致页面回到了首页。Debug了一下,绑定的回车时间的代码是进去了,以及提交的处理逻辑也走完,但是就是会被刷新。一直觉得是否有什么地方,绑了什么事件,但是也没找到;感觉这个像是某种默认的DOM或者HTML的行为导致,因为自己写的js完全没有这个触发刷新的地方。后来网上找了资料,发现了问题所在。

form表单中的input的问题

  当form表单中只有一个type为"text"的input标签时按回车键将会自动将表单提交。为了也验证是否是这个问题,下面是一个最简单的测试的html,:

<!DOCTYPE html>
<html>
	<body>
		<form name="test" >
		 输入框:<input type="text" name="name" /> 
		 <input type="button" value="Click" onclick="#" />
		 </form>
	</body>
</html>

  测试发现,只有一个type为"text"的input标签在form表单中时,是会自动提交,然后刷新页面。

解决方式

方式1:在在form中添加事件 onsubmit,例如下所示:

<form name="test" onsubmit="return" >
输入框:<input type="text" name="name" /> 
<input type="button" value="Click" onclick="#" />
</form>

方式2:因为一个input导致的,那么增加一个隐藏的输入框,就保证了多个type为"text"的input框,如下所示:

<form name="test" >
    输入框:<input type="text" name="name" /> 
    <input id="hiddenText" type="text" style="display:none" />
    <input type="button" value="Click" onclick="#" />
</form>

方式3:全局去掉回车,不推荐

总结

  果然,自己就是前端的菜鸡,好多都不清楚,所以只能踩踩坑,好好补补课…

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值