Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JS如何使用隐藏控件为表单添加参数

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

作者头像
itclanCoder
发布于 2023-02-26 06:57:13
发布于 2023-02-26 06:57:13
11.7K00
代码可运行
举报
文章被收录于专栏: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ElementUI Form 表单
Form 表单由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据
py3study
2021/01/06
2.7K0
ElementUI Form 表单
学生管理系统Element UI版
链接:https://pan.baidu.com/s/1FAb2WUSUwpRuwIB9Spy3oQ  提取码:1234
陶然同学
2023/02/24
1.5K0
学生管理系统Element UI版
JS如何为表单聚焦控件设置醒目的样式
在用户填写表单时,为了让用户集中精力填写或某一个表单控件,可以通过设置此空间的样式来达到目的
itclanCoder
2023/02/26
7.5K0
JS如何为表单聚焦控件设置醒目的样式
vue10CRUD+表单验证
目录 1. 准备工作 2. 弹出窗口 3. 新增更新功能  4. 删除功能 ​编辑  5. 表单验证  5. 接口文档 ---- 1. 准备工作 后台服务接口,对书本的增删改查操作 2. 弹出窗口 进入ElementUi官网, 找到Dialog对话框,可以参考“嵌套表单的dialog”实现。 该步骤先实现弹出窗口的前端逻辑,并不会调用后台接口服务进行实际的业务操作。 BookList.vue  <!-- 弹出窗口:增加和修改书本信息共用一个弹出窗口,需要根据用户的选择动态的设置弹出窗口的标题
天蝎座的程序媛
2022/11/18
2.6K0
vue10CRUD+表单验证
前端如何借助 AI 工具提升开发效率
大家好,我是喵喵侠。在日新月异的前端开发领域,开发效率的提升显得尤为重要。随着人工智能(AI)技术的不断进步,各种AI工具在前端开发中的应用也越来越广泛。目前市面上的 AI 工具有很多,但基本用法都大差不大。所以在这篇文章,我会告诉你 AI 工具的通用技巧,带你了解如何借助AI工具来提升前端开发效率,并通过实际的业务场景和案例展示这些工具的实际应用效果。
喵喵侠
2024/06/07
1.2K2
前端如何借助 AI 工具提升开发效率
我在实际项目开发中遇到的关于ElementUI各种表单验证
第一种 最简单的必填字段 <el-form-item label="委托方" prop="real_operator_id" > <operators-select v-model="
FinGet
2020/02/12
3.6K0
vue如何二次封装一个高频可复用的组件
在我们的业务里,我们通常会二次封装一些高频业务组件,比如弹框,抽屉,表单等这些业务组件,为什么要二次封装?我们所有人心里的答案肯定是,同样类似的代码太多了,我想复用组件,或者原有组件可能达不到我想要的效果,我想基于原有组件自定义一些自己的接口,那么此时就需要二次封装了。二次封装虽好,但同时也会带来一定的心智负担,因为二次封装的组件可能会变得不那么纯粹。
Maic
2022/12/21
2.4K0
vue如何二次封装一个高频可复用的组件
vue使用 Object.assign()巧妙重置data数据
Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。 Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。
程序媛夏天
2024/01/18
1.4K0
vue使用 Object.assign()巧妙重置data数据
总结form表单的三种封装方法(Vue+ElementUI)
第一种方法简单明了,基本能够处理解决大多数的表单问题,并且与slot的完美组合,已经可以达到我们的需求要求。
用户2323866
2021/06/24
8.4K0
TienChin-课程管理-添加课程页面
这个 index.vue 是 course 文件夹下面的 index.vue 别弄错了。
程序员NEO
2023/10/12
2290
vue 怎么将表单的值(字符串和数组格式)传给后台
前几天使用vue-element-admin框架开发了一个简单的后台管理系统,在开发的过程之中也遇到了一些功能,以及对饿了么框架的使用遇到的一些问题,如何解决问题,记录一下。
王小婷
2020/10/28
3.6K0
从零到部署:用 Vue 和 Express 实现迷你全栈电商应用(七)
在之前的六篇教程中我们已经基本实现了迷你全栈电商应用,相信大家对于一个全栈应用的开发已经有了一个全面的认知。但是一个追求完美的工程师是不会吝啬他的艺术创造,仅仅实现应用的功能还不能满足用户的高需求,应用的界面效果也是提高用户体验的关键因素。因此本篇教程将基于 element-ui 组件库重构项目的前端代码,改善迷你电商应用的界面效果,提高用户的体验感。虽然我们可以轻松地引入现成的组件库,但是与之对应的数据处理也值得我们注意,那我会在引入组件库的同时带大家一起踩一踩 element-ui 给我们挖的坑,毕竟踩坑才能成长嘛。
一只图雀
2020/04/07
1.6K0
Element 入门教程
Element 入门 官网:https://element.eleme.cn/#/zh-CN 引入 Element 的 css、js文件和 Vue.js ```html <script src="js/vue.js"></script> <script src="element-ui/lib/index.js"></script> <link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css"> ``` 创建 Vue 核心对象 `
ruochen
2022/03/07
2.7K0
Element 入门教程
【学生管理系统】班级管理
<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.9K0
【学生管理系统】班级管理
VUE Cookbook 系列:实现可配置组合表单
本案例将会讲解如何使用 vue.js + ElementUI 开发一个简单的 可配置组合表单 Demo。
FairyEver
2019/07/26
1.3K0
vue表格分页以及增删改查的实际应用
王小婷
2025/05/20
1290
vue表格分页以及增删改查的实际应用
ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例
进入ElementUi官网, 找到Dialog对话框,可以参考“嵌套表单的dialog”实现。 该步骤先实现弹出窗口的前端逻辑,并不会调用后台接口服务进行实际的业务操作。 BookList.vue
用户10196776
2022/11/22
4.7K0
ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例
设计Element UI表单组件居然如此简单!
上文讲解了Jest框架对组件库测试,TypeScript和Jest都为代码质量和研发效率。之前实现Container和Button组件以渲染功能为主,可根据不同属性渲染不同样式去实现布局和不同格式的按钮。
JavaEdge
2024/12/29
4740
设计Element UI表单组件居然如此简单!
Element Form表单含有嵌套的数据校验
官网的例子 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="活动名称" prop="name"> <el-input v-model="ruleForm.name"></el-input> </el-form-item> <el-form-item label="活动区域" prop="regio
tianyawhl
2020/04/08
3.3K0
【VIDEO_Parent】-创作者前端-添加创作者
程序员NEO
2023/11/30
1940
【VIDEO_Parent】-创作者前端-添加创作者
相关推荐
ElementUI Form 表单
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验