javascript - 阻止 Enter 在 Safari 中提交表单
问题描述
我的页面上有以下代码:
$('form.enter-doesnt-submit').submit(function () {
console.log($(document.activeElement));
if($(document.activeElement).attr('type') == 'submit') {
console.log
return true;
} else {
console.log("Prevented enter from submitting the form.");
return false;
}
});
我很确定我很久以前从 stackoverflow 得到的。它工作正常,只是不在 Safari 中。原因是当我注销时document.activeElement
它给了我整个页面,所以属性类型当然不是提交,因此即使您单击提交按钮,表单也不会提交。
我需要能够防止在我的表单上输入提交,因为它们是在线测试,如果用户正在写一个答案并且在表单完成之前不小心按下了输入,那么他们会被错误地标记,因为他们实际上并没有完成测试。
任何人都可以帮助我防止在 Safari 上按下输入吗?
解决方案
好的,我通过另一种方式解决了这个问题,而是针对表单中的输入:
$('form.enter-doesnt-submit input[type=text]').keypress(function (e) {
if(e.keyCode == 13) {
e.preventDefault()
}
});
默认情况下,在 textarea 中按 enter 不会提交表单,因此它只是需要阻止的输入。现在我的提交按钮可以在 safari 和 chrome 中使用。
推荐阅读
- git - 下载了git,安装的安全性怎么样?
- python - 从现有的 Pandas DataFrame 创建一个新的 Pandas DataFrame
- scala - 更新数组中的案例类数据
- pandas - 在另一列上乘以两个数据框条件
- angular - 角度的动态选项卡
- php - Laravel 6 - auth()->user()||Auth::user() 在禁用 verifycsrfToken 中间件的路由上不起作用,返回空对象
- flutter - Flutter(android)调用动态库(rust预建)Release模式加载动态库失败
- sql-server - 对 500+ 百万行表的主键列的选择查询没有响应
- python-3.x - apache 中的 mod_wsgi 无法正确呈现 html 根目录
- wcf - BtsActionMapping 不理解