首页 > 其他分享 >项目开发难点-要求el-radio组件实现点击切换的时候,先弹出框判断是否符合条件,如果符合radio的值发生变化,不符合则不变。解决方法v-model的分解式 :value @Input

项目开发难点-要求el-radio组件实现点击切换的时候,先弹出框判断是否符合条件,如果符合radio的值发生变化,不符合则不变。解决方法v-model的分解式 :value @Input

时间:2023-07-21 17:23:20浏览次数:45  
标签:选项 el 发生变化 点击 radio 符合 model change

  • 需求描述:页面radio点击的时候,先不改变radio的值,先弹出框进行判断是否符合一定的条件如果符合则发生变化,否则radio不发生变化,页面还显示原来的值。
  • 问题难点:在vue项目中,使用
    •   <el-radio v-model="radio" label="1">备选项1</el-radio>
        <el-radio v-model="radio" label="2">备选项2</el-radio>

       

    • 存在问题v-model并不能截取到点击后,变化前的操作,事实上是点击“备选项2”的时候,radio的值已经变成2了才能执行@change的事件,因为change事件就是值发生变化才会执行的事件。
    • 假设我们element的el-radio中有before-change事件就好了,但是没有。
    • 所以换种思路解决。想到v-model的分解式
  • v-model的分解式  :value   @Input  
    • 将页面中的v-model改为最原始的写法
    • <template>
          <el-radio :value="radio" @input=InputHandle($event) label="1">备选项1</el-radio>
          <el-radio  :value="radio" @input=InputHandle($event) label="2">备选项2</el-radio>
      </template>
      
      <script>
        export default {
          data () {
            return {
              radio: '1'
            };
          }
          methods: {
            InputHandle(val) {
              this.$confirm(' 是否改变当前值?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
              }).then(() => {
                 this.radio = val
              }).catch(() => {
                this.$message({
                  type: 'info',
                  message: '已取消'
                });          
              });
            }
          }
        }
      </script>

       

  • 运用到项目中-简单实用不含@change

 

  • 运用到项目中-复杂使用包含@change

 

标签:选项,el,发生变化,点击,radio,符合,model,change
From: https://www.cnblogs.com/evident/p/17571989.html

相关文章

  • shell颜色
    在Shell中,可以使用ANSI转义码来控制文本的颜色和格式。ANSI转义码以\033[开头,后面跟着相应的控制字符来改变文本的样式和颜色。以下是一些常用的Shell颜色代码:文本颜色:30:黑色31:红色32:绿色33:黄色34:蓝色35:紫色36:青色37:白色背景颜色:40:黑色41:......
  • (转)Swing 线程之SwingUtilities.invokeLater()
     现在我们要做一个简单的界面。包括一个进度条、一个输入框、开始和停止按钮。需要实现的功能是:当点击开始按钮,则更新进度条,并且在输入框内把完成的百分比输出(这里只做例子,没有真正去做某个工作)。 代码1: 1.importjava.awt.FlowLayout;2.importjava.awt.event.Actio......
  • 5.ELASTICSEARCH~高级(一)
    五、Mapping1、ElasticSearch7去掉type的概念关系数据库中两个数据表示是独立的,即使他们里面有相同名称的列也不影响使用,但ES中不是这样的。elasticsearch是基于Lucene开发的搜索引擎,而Es中不同type下名称相同的field最终在Lucene中的处理方式是一样的两个不同type下的user-name,在......
  • 对Camel的一点感触
    用Camel几个月了,对它是又爱又恨。感触很多,零零碎碎的加吧。1.Camel确实是一个非常好用和使用的JMS工具,不过Camel的效率实在是不敢让人恭维,虽然本人费了很大的力气进行优化,不过相比RMI速度还是慢了将近200%,所以如果对速度要求很高的应有,最好先做一个效率的......
  • Excel工具使用
    一、函数1、前言在Excel单元格中的函数名称都是大写字母,即使在输入函数时使用了小写字母,在按下Enter键后,Excel也会自动将函数名称转为大写字母,因此为了确保在公式中输入正确的函数名,我们可以在输入时使用小写字母,这样如果函数名称有误,那么在按下Enter键时Excel不会将小写字......
  • docker配置文件输出helloworld
    1.在root下创建dockerfilesudo-itouchDockerfilevimDockerfile2.编写helloworld.gopakagemainimport"fmt"funcmain(){fmt.Println("Hello,World!")} 3.配置DockerfileFROMubuntu:22.04ASv1ENVMYNAME="WANGYIDI"WOR......
  • 发现在elementui使用xlsx导出excel时会有重复的数据
    原因是由于elementui中的固定列产生的影响,doExportExcel(){//导出为excel    letwb=''    letxlsxParam={raw:true}    letfix=document.querySelector(".el-table__fixed-right")    if(fix){     wb=XLSX.uti......
  • Shell
    shell介绍什么shellshell功能一、什么是shellshell是一个程序,采用C语言编写,是用户和linux内核沟通的桥梁。它既是一种命令语言,又是一种解释性的编程语言。通过一个图表来查看一下shell的作用。作用:kernel:为软件服务,接收用户或软件指令驱动硬件,完成工作shell:命令解释......
  • Linux - Check If File Is Empty Or Not Using Shell Script
    Linux-CheckIfFileIsEmptyOrNotUsingShellScriptHowdoIcheckifafileisemptyornotusingbashorkshshellscriptunderaUNIX/Linux/macOS/OSX/BSDfamilyofoperatingsystems?HowdoIcheckifafileisemptyinBash?Youcanuse......
  • Intellij IDEA 显示 access.log 日志
    先配置  SpringBoot记录access.log日志,先让accesslog 显示出来  ......