使用input 的required以及form进行验证时阻止提交后的跳转

1 篇文章 0 订阅

在写登陆页面的时候用到原生的input,buttonmform来进行验证,验证通过后会跳转页面/刷新页面。
在这里插入图片描述

<form target="iframe_display">
  <div class="card_username card_input">
    <input type="text" required v-model="formData.username">
    <label for="" class="input_label">Username</label>
    <div class="input_bar"></div>
  </div>
  <div class="card_password card_input">
    <input type="text" required v-model="formData.password">
    <label for="" class="input_label">Password</label>
    <div class="input_bar"></div>
  </div>
  <button class="card_go" @click="handleGoLogin">
    <span>Go</span>
  </button>
</form>

解决办法

  1. 添加一个隐式的
  2. 将form的target指向iframe的name

如下:
在这里插入图片描述

在这里插入图片描述

代码:

<form target="iframe_display">
  <div class="card_username card_input">
    <input type="text" required v-model="formData.username">
    <label for="" class="input_label">Username</label>
    <div class="input_bar"></div>
  </div>
  <div class="card_password card_input">
    <input type="text" required v-model="formData.password">
    <label for="" class="input_label">Password</label>
    <div class="input_bar"></div>
  </div>
  <button class="card_go" @click="handleGoLogin">
    <span>Go</span>
  </button>
</form>
<iframe id="iframeDisplay" name="iframe_display" style="display: none;"></iframe>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现输入键值form表单提交附件至服务器进行比对进行登入页面,可以按照以下步骤进行: 1. 在前端页面中编写form表单,包括输入框和文件上传框,并设置form的action属性为服务器端处理登录请求的接口地址。 2. 在服务器端编写处理登录请求的接口,接收前端form表单提交的数据,并进行比对验证。 3. 如果比对验证成功,则在服务器端设置一个登录状态标识,并将该标识以cookie的形式返回给前端。同,服务器端将用户到登录成功后的页面。 4. 如果比对验证失败,则在服务器端返回登录失败的提示信息,并将用户留在登录页面。 下面是一个简单的示例代码,仅供参考: 前端页面代码: ``` <form action="/login" method="post" enctype="multipart/form-data"> <label>用户名:</label> <input type="text" name="username" required> <br> <label>密码:</label> <input type="password" name="password" required> <br> <label>上传头像:</label> <input type="file" name="avatar" accept="image/*" required> <br> <button type="submit">登录</button> </form> ``` 服务器端代码(使用Node.js和Express框架): ``` const express = require('express'); const cookieParser = require('cookie-parser'); const bodyParser = require('body-parser'); const multer = require('multer'); const fs = require('fs'); const app = express(); // 设置上传文件的存储路径和文件名 const storage = multer.diskStorage({ destination: (req, file, cb) => { cb(null, 'uploads/'); }, filename: (req, file, cb) => { cb(null, file.originalname); } }); const upload = multer({ storage }); // 解析请求体和cookie app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); // 处理登录请求 app.post('/login', upload.single('avatar'), (req, res) => { const { username, password } = req.body; const avatar = req.file; // 进行比对验证 if (username === 'admin' && password === '123456' && avatar) { // 设置登录状态标识 res.cookie('login', 'true'); // 到登录成功后的页面 res.redirect('/success.html'); } else { // 返回登录失败的提示信息 res.send('用户名或密码错误'); } // 删除上传的文件 if (avatar) { fs.unlinkSync(avatar.path); } }); // 启动服务器 app.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` 在上面的示例代码中,我们使用了Node.js和Express框架来实现服务器端的处理逻辑。其中,multer模块用于处理文件上传,cookie-parser模块用于解析cookie,body-parser模块用于解析请求体。在处理登录请求,我们首先通过req.body获取用户名和密码,然后通过req.file获取上传的头像文件。接着,我们进行比对验证,如果验证成功,则设置一个名为"login"的cookie,并将用户到登录成功后的页面;如果验证失败,则返回登录失败的提示信息。最后,我们通过fs模块删除上传的文件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值