前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JS如何使用隐藏控件为表单添加参数

JS如何使用隐藏控件为表单添加参数

作者头像
itclanCoder
发布于 2023-02-26 06:57:13
发布于 2023-02-26 06:57:13
11.1K00
代码可运行
举报
文章被收录于专栏:itclanCoderitclanCoder
运行总次数:0
代码可运行

前言

在一些前端动态网页的表单里,并不是所有的参数都需要填写或选择,有些需要隐藏起来,然后跟着小单一起提交传递给后台,发送到服务器

那这个是怎么实现的呢

示例展示

具体示例,可见

https://coder.itclan.cn/fontend/js/24-hide-input-params/

01

原生js

对于不显示在界面上的元素,但在提交表单时,却又要携带上去,是有这种需求的,比如用户修改某件商品信息时,商品的id,商品的id并不是用户想要关心的

但是这个id又是数据库表格的标识,往往是一个必传的字段,因此使用隐藏变量把这个参数隐藏起来,可以很好的解决这个问题

具体如下代码所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 展示表单参数的函数
function showParams() {
    // 设置萤囊变量的值,这个值也可以通过标签的value指定
    document.forms[0].myhidden.value = "我是隐藏的参数";
    var str = "表单将提交的参数包括"   // 定义字符拼接变量
    // 拼接年份参数
    str += '\n年份:'+document.forms[0].myyear.value;
    // 拼接姓名参数
    str += '\n姓名:'+document.forms[0].myname.value;
    // 拼接隐藏参数
    str += '\n隐藏变量'+document.forms[0].myhidden.value;
    alert(str); // 展示字符拼接的值
}

如下是html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="hidden" name="myhidden" />
年份:
<select name="myyear">
   <option value="2022">2022</option>
   <option value="2021">2021</option>
   <option value="2022">2020</option>
   <option value="2021">2019</option>
</select>
<br />
姓名: <input type="text" name="myname" />
<input type="button" value="提交" onclick="showParams()" />

02

Vue版本实现

如下是vue方式实现,其实都是类似的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
  <div class="wrap">
    <el-form :inline="true" :model="formParams">
      <el-form-item>
        <el-input v-model="formParams.id" type="hidden"  ></el-input>
      </el-form-item>  
      <el-form-item label="姓名">
        <el-input v-model="formParams.name" placeholder="请输入姓名"></el-input>
      </el-form-item>
      <el-form-item label="年份">
        <el-select v-model="formParams.year" placeholder="请选择年份" @change="handleSelect">
          <el-option v-for="item in formParams.options" :key="item.value" :label="item.label" :value="item.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="onSubmit">提交</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
export default {
  name: "hideInputParams",
  data() {
    return { 
      formParams: {
        id: '我是隐藏携带的参数',
        name: "",
        year: "",
        options: [
            {
                label: '2022',
                value: '2022'
            },
            {
                label: '2021',
                value: '2021'
            },
            {
                label: '2020',
                value: '2020'
            },
            {
                label: '2019',
                value: '2019'
            },
            {
                label: '2018',
                value: '2018'
            },
            {
                label: '2017',
                value: '2017'
            },
            {
                label: '2016',
                value: '2016'
            }
        ]
      },
    };
    
  },
  methods: {
    handleSelect(val) {
        console.log(val);
        this.formParams.year = val;
    },
    onSubmit() {
      console.log("submit!");
      const {id,name,year} = this.formParams;
      if(name && year) {
        this.$alert(`id:${id},名字:${name},年份:${year}`, '提交的数据', {
          confirmButtonText: '确定',
          callback: action => {
            this.$message({
              type: 'info',
              message: `action: ${ action }`
            });
          }
        });
      }else {
        this.$message.error('名字或年份不能为空');
      }
     
    },
  },
};
</script>

<style lang="scss" scoped>
.wrap {
    text-align: center;
}
</style>

总结

一些需要隐藏的表单参数控制,有时是需要传给后端的,传统的方法,隐藏表单的数据,然后在提交时,传递给后端,是一个比较常见的操作

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 itclanCoder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
前端如何借助 AI 工具提升开发效率
大家好,我是喵喵侠。在日新月异的前端开发领域,开发效率的提升显得尤为重要。随着人工智能(AI)技术的不断进步,各种AI工具在前端开发中的应用也越来越广泛。目前市面上的 AI 工具有很多,但基本用法都大差不大。所以在这篇文章,我会告诉你 AI 工具的通用技巧,带你了解如何借助AI工具来提升前端开发效率,并通过实际的业务场景和案例展示这些工具的实际应用效果。
喵喵侠
2024/06/07
9862
前端如何借助 AI 工具提升开发效率
教育平台项目前端:项目前后端接口联调,项目上线部署发布
将项目部署到 Tomcat:项目名为 lagou_edu_home,端口号: 8080,使用 war 方式部署
RendaZhang
2020/09/08
2.2K0
微服务项目:尚融宝(38)(核心业务流程:申请借款额度(1))
step1:用户在个人中心点击 “立即借款”  (http://localhost:3000/user/borrower)
一个风轻云淡
2022/11/15
4440
微服务项目:尚融宝(38)(核心业务流程:申请借款额度(1))
动态表单的设计与实现(基于Vue ElementUI)
在xxx信息管理这种业务场景中我认为最常见的操作就是对字段的处理(例如查询、编辑等区域的表单、图表的列名、表格的列名),而字段恰恰是最为 '规范的',它有自己的名称、类型
用户7741497
2022/03/22
3.5K0
前端表单输入框自动填充和覆盖逻辑的实现
你好,我是喵喵侠。在Web开发中,动态表单的联动操作,是非常常见的需求,尤其是在需要实现复杂逻辑时,更是不可或缺。正好我在工作中,好几次遇到了输入框内容需要被填充的需求,本文将会为你详细介绍这样的需求案例,展示具体实现的思路和实战代码。
喵喵侠
2024/06/20
7553
前端表单输入框自动填充和覆盖逻辑的实现
学生管理系统Element UI版
链接:https://pan.baidu.com/s/1FAb2WUSUwpRuwIB9Spy3oQ  提取码:1234
陶然同学
2023/02/24
1.5K0
学生管理系统Element UI版
vue如何二次封装一个高频可复用的组件
在我们的业务里,我们通常会二次封装一些高频业务组件,比如弹框,抽屉,表单等这些业务组件,为什么要二次封装?我们所有人心里的答案肯定是,同样类似的代码太多了,我想复用组件,或者原有组件可能达不到我想要的效果,我想基于原有组件自定义一些自己的接口,那么此时就需要二次封装了。二次封装虽好,但同时也会带来一定的心智负担,因为二次封装的组件可能会变得不那么纯粹。
Maic
2022/12/21
2.3K0
vue如何二次封装一个高频可复用的组件
vue使用 Object.assign()巧妙重置data数据
Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。 Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。
程序媛夏天
2024/01/18
1.2K0
vue使用 Object.assign()巧妙重置data数据
【学生管理系统】班级管理
<template>  <el-card class="classes-add-card">    <el-form ref="form" :model="classes" label-width="100px">      <el-form-item label="班级ID">        <el-input v-model="classes.cid"></el-input>      </el-form-item>      <el-form-item label="班级名称">        <el-input v-model="classes.cname"></el-input>      </el-form-item>      <el-form-item label="选择老师">        <el-select v-model="classes.teacherIds" multiple placeholder="请选择老师" style="width: 100%">          <el-option v-for="(teacher,index) in teacherList" :key="index" :label="teacher.tname" :value="teacher.tid"></el-option>        </el-select>      </el-form-item>      <el-form-item label="授课老师">      </el-form-item>      <el-form-item label="助理老师">      </el-form-item>      <el-form-item label="辅导员老师">      </el-form-item>      <el-form-item>        <el-button type="primary">添加</el-button>        <el-button>重置</el-button>      </el-form-item>    </el-form>    {{classes}}  </el-card> </template> ​ <script> export default {  data() {    return {      classes: {        teacherIds: []      //选择的所有老师     },      teacherList: [],      //老师列表   } },  methods: {    async findAllTeacher() {      let { data:baseResult } = await this.$axios.get('/classes-service/teacher')      // 获得结果      this.teacherList = baseResult.data   } },  mounted() {    //查询所有的老师    this.findAllTeacher() }, } </script> ​ <style>  .classes-add-card {    width: 500px; } </style>
陶然同学
2023/02/24
2.7K0
【学生管理系统】班级管理
vue 实现动态表单点击新增 增加一行输入框
点击增加后会新增一行,点击每行后面的删除图标则会删除该行,新增按钮只会出现在最后一行
一觉睡到小时候
2023/08/11
1.1K0
vue 实现动态表单点击新增 增加一行输入框
Vue+ElementUI 搭建后台管理系统(实战系列四)
使用ElementUI已经有一段时间了,在一边上手开发后台管理系统的同事,也记录了一些笔记,一直都没有时间将这些零零散散的笔记总结起来,整理成一个比较系统详细一点的教程,可以留着以后来看。
王小婷
2021/11/24
1.6K0
Vue+ElementUI 搭建后台管理系统(实战系列四)
ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例
进入ElementUi官网, 找到Dialog对话框,可以参考“嵌套表单的dialog”实现。 该步骤先实现弹出窗口的前端逻辑,并不会调用后台接口服务进行实际的业务操作。 BookList.vue
用户10196776
2022/11/22
4.4K0
ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例
Element表单验证
要加验证之前一定要确保已经写了 prop 属性,该属性是跟 rule 绑定在一起的,也可以在行内单独制定 rules。
leader755
2022/03/09
3.6K0
JS如何为表单聚焦控件设置醒目的样式
在用户填写表单时,为了让用户集中精力填写或某一个表单控件,可以通过设置此空间的样式来达到目的
itclanCoder
2023/02/26
7.2K0
JS如何为表单聚焦控件设置醒目的样式
vue表格分页以及增删改查的实际应用
效果 1:表格以及分页 2:增加一条数据 3:删除一条数据 4:修改一条数据 5:查询一条数据 实例: <template> <div class="tab-container"> <d
王小婷
2021/03/17
1.9K0
设计Element UI表单组件居然如此简单!
上文讲解了Jest框架对组件库测试,TypeScript和Jest都为代码质量和研发效率。之前实现Container和Button组件以渲染功能为主,可根据不同属性渲染不同样式去实现布局和不同格式的按钮。
JavaEdge
2024/12/29
3470
设计Element UI表单组件居然如此简单!
vue 怎么将表单的值(字符串和数组格式)传给后台
前几天使用vue-element-admin框架开发了一个简单的后台管理系统,在开发的过程之中也遇到了一些功能,以及对饿了么框架的使用遇到的一些问题,如何解决问题,记录一下。
王小婷
2020/10/28
3.4K0
TienChin-课程管理-添加课程页面
这个 index.vue 是 course 文件夹下面的 index.vue 别弄错了。
程序员 NEO
2023/10/12
1930
TienChin 活动管理-添加活动页面
直接将原有的 index.vue 的全部内容替换成下面的,这里先替换,我只是补齐文档,后面新模块开发我会一步一步进行记录起来:
程序员 NEO
2023/10/12
3150
总结form表单的三种封装方法(Vue+ElementUI)
第一种方法简单明了,基本能够处理解决大多数的表单问题,并且与slot的完美组合,已经可以达到我们的需求要求。
用户2323866
2021/06/24
8.3K0
推荐阅读
相关推荐
前端如何借助 AI 工具提升开发效率
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文