form.on监听submit 只有第一次提交生效 后边就不生效了
时间: 2023-09-30 13:01:49 浏览: 48
这个问题可能是因为您没有正确地使用 `form.on()` 方法来监听表单提交事件。请确保您在表单上调用了 `form.on()` 方法,并将其绑定到 `submit` 事件上。另外,请确保您没有在表单提交后阻止默认的提交行为。
以下是一个示例代码,您可以参考一下:
```html
<form id="myForm">
<!-- 表单字段 -->
<button type="submit">提交</button>
</form>
<script>
var form = document.querySelector('#myForm');
form.on('submit', function (event) {
// 阻止默认的提交行为
event.preventDefault();
// 处理表单提交
// ...
// 返回 false 防止事件冒泡
return false;
});
</script>
```
如果您已经正确地使用了 `form.on()` 方法,但仍然遇到了这个问题,可能是因为您在表单提交后修改了表单的 HTML 结构或者重新绑定了事件监听器。请检查您的代码,确保在表单提交后不会发生这种情况。
相关问题
javascript怎么监听 form.submit事件
在JavaScript中,可以使用`addEventListener()`方法来添加`submit`事件的监听器,示例如下:
```javascript
const form = document.querySelector('form');
form.addEventListener('submit', function(event) {
event.preventDefault(); // 阻止表单默认提交行为
// 在这里添加处理表单提交的代码
});
```
在上面的代码中,我们首先使用`document.querySelector()`方法获取到页面中的表单元素,并将其赋值给`form`变量。然后,我们使用`addEventListener()`方法来添加一个`submit`事件的监听器。当表单提交时,这个监听器函数将被触发。在函数中,我们调用`event.preventDefault()`方法来阻止表单的默认提交行为,然后添加自己的表单处理逻辑。
需要注意的是,如果表单中有多个提交按钮,那么每个按钮都会触发`submit`事件,因此可以通过判断`event.submitter`属性来确定哪个按钮被点击了,示例如下:
```javascript
const form = document.querySelector('form');
form.addEventListener('submit', function(event) {
event.preventDefault(); // 阻止表单默认提交行为
const submitBtn = event.submitter;
if (submitBtn.id === 'btn1') {
// 处理btn1按钮的逻辑
} else if (submitBtn.id === 'btn2') {
// 处理btn2按钮的逻辑
}
});
```
在上面的代码中,我们使用`event.submitter`属性来获取到用户点击的提交按钮,然后通过判断按钮的`id`属性来确定执行哪个按钮的处理逻辑。
layui form.verify不生效
如果 layui 的 `form.verify()` 方法不生效,一般有以下几个原因:
1. 没有引入 layui 的 JS 和 CSS 文件。请确保在页面中正确引入了 layui 的 JS 和 CSS 文件。
2. `form.verify()` 方法没有被正确地调用。请确保在表单渲染之后,调用了 `form.verify()` 方法。
3. 校验规则写错。请仔细检查校验规则的写法是否正确,例如正则表达式是否正确、函数中的参数是否正确等。
4. 校验规则与表单项不对应。请确保校验规则中的表单项名称与 HTML 中表单项的名称对应。
5. 需要在表单项中添加 `lay-verify` 属性。`lay-verify` 属性是用来指定表单项需要进行校验的,如果没有添加该属性,则校验不会生效。
如果以上方法都不行,可以将代码贴出来,我们一起来看看问题所在。