vue使用表单提交的时候,点击登录需要两次

项目场景:

使用表单提交的时候,点击登录需要两次


问题描述

使用表单提交的时候,点击登录需要两次

    <form>

          <div class="input-group">

            <input type="text" placeholder="请输入企业账号" v-model="user">

          </div>

          <div class="input-group">

            <input type="password" placeholder="请输入密码"  v-model="password">

          </div>

          <div class="footer">

            <a href="#">忘记密码?</a>

          </div>

          <button type="submit" @click="registerUser">登录</button>

        </form>

原因分析:

表单提交行为和 Vue 中方法的冲突。你目前在 <button> 标签上使用了 type="submit" 并监听了 @click 事件。这导致表单的默认提交行为和你的 registerUser 方法同时执行。


解决方案:

  • 阻止表单默认提交行为: 在 registerUser 方法中使用 event.preventDefault() 来阻止表单的默认提交行为,这样 Vue 的方法可以顺利执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ant Design Vue 提供了一些方便的表单组件和 API,可以轻松地创建注册表单。以下是一个使用 Ant Design Vue 注册表单的示例: ``` <template> <a-form ref="registerForm" :model="registerForm" :rules="registerRules"> <a-form-item label="用户名" :colon="false" :has-feedback="true" :validate-status="registerForm.usernameError"> <a-input v-model="registerForm.username" prefix-icon="user" placeholder="请输入用户名"></a-input> <a-icon v-if="registerForm.usernameError" type="close-circle"></a-icon> </a-form-item> <a-form-item label="密码" :colon="false" :has-feedback="true" :validate-status="registerForm.passwordError"> <a-input v-model="registerForm.password" prefix-icon="lock" type="password" placeholder="请输入密码"></a-input> <a-icon v-if="registerForm.passwordError" type="close-circle"></a-icon> </a-form-item> <a-form-item label="确认密码" :colon="false" :has-feedback="true" :validate-status="registerForm.confirmPasswordError"> <a-input v-model="registerForm.confirmPassword" prefix-icon="lock" type="password" placeholder="请再次输入密码"></a-input> <a-icon v-if="registerForm.confirmPasswordError" type="close-circle"></a-icon> </a-form-item> <a-form-item> <a-button type="primary" @click="handleSubmit">注册</a-button> </a-form-item> </a-form> </template> <script> export default { data() { return { registerForm: { username: '', password: '', confirmPassword: '', usernameError: '', passwordError: '', confirmPasswordError: '' }, registerRules: { username: [ { required: true, message: '请输入用户名', trigger: 'blur' }, { min: 3, max: 20, message: '用户名长度在 3 到 20 个字符之间', trigger: 'blur' } ], password: [ { required: true, message: '请输入密码', trigger: 'blur' }, { min: 6, max: 20, message: '密码长度在 6 到 20 个字符之间', trigger: 'blur' } ], confirmPassword: [ { required: true, message: '请再次输入密码', trigger: 'blur' }, { validator: this.validateConfirmPassword, trigger: 'blur' } ] } } }, methods: { validateConfirmPassword(rule, value, callback) { if (value !== this.registerForm.password) { callback(new Error('两次输入的密码不一致')) } else { callback() } }, handleSubmit() { this.$refs.registerForm.validate(valid => { if (valid) { // 执行注册操作 console.log('注册成功') } }) } } } </script> ``` 在示例中,我们使用了 Ant Design Vue 的 `<a-form>`、`<a-form-item>` 和 `<a-input>` 组件来构建表单。我们定义了表单数据 `registerForm` 和表单验证规则 `registerRules`。当用户点击注册按钮时,我们调用 `handleSubmit` 方法来验证表单并执行注册操作。在提交表单前,我们可以使用 `validate` 方法来验证表单数据。如果表单验证通过,我们就可以执行注册操作。如果验证失败,`validate` 方法会返回 false,并将错误信息存储在对应的表单数据中。我们可以根据错误信息来显示错误提示。 以上是一个基本的 Ant Design Vue 注册表单示例,你可以根据自己的需求来调整表单的样式和验证规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值