vant表单点击提交没有触发验证_点击提交按钮后submit事件没有被触发

var forms = document.querySelectorAll("form")

for (var i = 0; i < forms.length; i++) {

forms[i].addEventListener("submit", function (e) {

console.log(this);

if (!this.checkValidity()) {

e.preventDefault();

}

}, true);

}

Contact Info

name

email

check

控制台中观察不到this的输出

更新结果:

submit事件在填写的表单内容符合要求时才会被触发。所以我后面的 if (!this.checkValidity()

如果我将表单全部填对的话是能看到this的输出的。

@yunkehe 绑定在submit上的确能阻止跳转,我这里没有成功阻止跳转是因为我的if语句没有意义造成的

在submit事件触发时验证表单内容来阻止表单提交是为了验证在js中自定义的检测

比如

Change Your Password

  • Password 1:

  • Password 2:

var password1 = document.getElementById('password1');

var password2 = document.getElementById('password2');

var checkPas

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤实现vant4点击按钮触发校验但不提交表单: 1. 在模板中使用van-form组件包裹表单内容,并设置ref属性。 2. 在表单项中使用van-field组件,并设置prop属性。 3. 在van-form组件中设置rules属性,用于定义表单项的校验规则。 4. 在按钮上使用@click事件监听器,并在事件处理函数中调用this.$refs.form.validate()方法,触发表单校验。 5. 在事件处理函数中判断表单校验结果,如果校验通过则可以执行其他操作。 下面是一个简单的示例代码: ```html <template> <van-form ref="form" :rules="rules"> <van-field v-model="name" label="姓名" prop="name" /> <van-field v-model="email" label="邮箱" prop="email" /> <van-button type="primary" @click="validateForm">校验</van-button> </van-form> </template> <script> export default { data() { return { name: '', email: '', rules: { name: [ { required: true, message: '请填写姓名', trigger: 'blur' }, { min: 2, max: 10, message: '姓名长度在 2 到 10 个字符', trigger: 'blur' } ], email: [ { required: true, message: '请填写邮箱', trigger: 'blur' }, { type: 'email', message: '邮箱格式不正确', trigger: 'blur' } ] } } }, methods: { validateForm() { this.$refs.form.validate(valid => { if (valid) { // 表单校验通过,可以执行其他操作 console.log('表单校验通过') } else { // 表单校验不通过,需要处理错误信息 console.log('表单校验不通过') } }) } } } </script> ``` 在这个示例中,当用户点击“校验”按钮时,会触发validateForm方法,在这个方法中调用form的validate方法进行表单校验。如果校验通过,则会在控制台输出“表单校验通过”;如果校验不通过,则会输出“表单校验不通过”。需要注意的是,这里并没有使用submit按钮提交表单,而是使用一个普通的按钮触发校验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值