html阻止input 提交表单,聊聊禁止input回车提交表单

本文介绍了如何使用JavaScript实现回车提交表单的同时进行输入验证。通过在form标签上添加onkeydown事件阻止默认的回车提交行为,并创建了一个监听键盘事件的方法,当输入满足条件时才提交表单。这种方法在保持良好用户体验的同时,确保了数据验证的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上搜了一下解决方案,其中有一个方案就是form标签上添加:οnkeydοwn="if(event.keyCode==13){return false;}"

嗯。。。确实管用,完全禁止了input回车提交表单。

但是。。。我想说其实input回车提交表单的用户体验真得很好呀,我就是想在提交时加一验证下而已,再找找原因吧:form中的input只有一个,input获得焦点时按回车会form自动提交。

有多个input时(不管是否是隐藏的),任意一个input获得焦点都不会提交。

多个input标签?程序员我是花重金聘请的,让他改HTML结构,估计不合适,js试一下吧:export const Search = function(){

const doc = document;

const btn = doc.querySelector('.searchBtn');

if(!btn) return;

const form = btn.parentNode;

const input = form.getElementsByTagName('input')[0];

const placeholder = document.createElement('input');

placeholder.type = 'text';

placeholder.style.display = 'none';

form.appendChild(placeholder);

const submitFn = ()=>{

const value = input.value;

if(value.length <= 1) return;

form.submit();

}

btn.addEventListener('click',submitFn);

form.addEventListener('keypress',event=>{

if(event.keyCode==13 && (input == document.activeElement) ){

submitFn();

}

});

}

好用!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值