javascript - 表单仍然提交,尝试使用 e.preventDefault();

标签 javascript jquery html preventdefault onsubmit

所以我有这个表格。我想检查用户是否验证了验证码,但遇到问题。这是检查函数的表单。

<form data-id="embedded_signup:form" id="myForm" class="ctct-custom-form Form" name="embedded_signup" method="POST" action="https://visitor2.constantcontact.com/api/signup" onsubmit="check_if_capcha_is_filled()">

这里是确定 doSubmit(验证码)是否已被验证的函数。

function check_if_capcha_is_filled(e){
  if(doSubmit) return true;
  e.preventDefault();
  alert('Fill in the capcha!');
  return false;
};

但我收到错误

Uncaught TypeError: Cannot read property 'preventDefault' of undefined
at check_if_capcha_is_filled

有什么指示可以指出我所缺少的内容吗?谢谢。

最佳答案

您的 e.preventDefault 使用不正确。它不会执行任何操作,因为您将事件传递给函数,您希望将其附加到事件处理程序,如下所示:

$('form').on('submit', function(e)
{
    e.preventDefault();
    //rest of code
})

这将停止提交操作。

引用:http://api.jquery.com/event.preventDefault/

关于javascript - 表单仍然提交,尝试使用 e.preventDefault();,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45355701/

相关文章:

JavaScript 在 ie11 中未按预期运行,但在所有其他浏览器中运行良好

javascript - 单个文件中多个 React 组件的 PropType 验证

javascript - 如何使用 JavaScript/jQuery 滚动到页面顶部?

javascript - PHP JQuery 对话框和数据表 + 丢失布局

javascript - 确定 Chrome 中当前 DOM 元素状态

javascript - React.js 与 Node.js Rest API

javascript - 谷歌折线图吓坏了,以随机 Angular 绘制

javascript - 如何将元素自动放置在彼此之下

html - 在图像旁边放置 figcaption

javascript - 富文本编辑器使用 contenteditable 包裹文本