【ElemetUI 单选组件】切换单选值 需弹框选择“是”之后再赋值 选“否”则不赋值


前言

在开发过程中,产品经理提出了一个需求,大概意思是 表单中的单选组组件的v-model的值改变时,清除一个列表的的所有值,但在清除之前需要一个弹出框 用户点击“确认”则清除列表,用户点击“取消” 则不清除列表的值 且不改变单选组的v-model绑定值

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


提示:以下是本篇文章正文内容,下面案例可供参考

1.监听表单中的单选组的v-model,若值被改变则存在data中

//监听对象中的某一属性
 'Form.radio': { 
      deep:true,
      handler(val, old) {
        console.log(val,old,'-拿到值');
        if(old!==''){
           this.oldWord = old;
        }
      },
    },

2.在表单控件上添加@change事件

先在控件上加change事件

<el-form-item label="标签叫啥好呢" prop="radio">
    <el-radio-group v-model="Form.radio"  @change="tabChangeClear()">
        <el-radio-button label="你好!"></el-radio-button>
        <el-radio-button label="不好?"></el-radio-button>
        <el-radio-button label="不好!"></el-radio-button>
        <el-radio-button label="拉倒!"></el-radio-button>
    </el-radio-group>
 </el-form-item>

在change事件里面写弹框以及后续操作

//---清空
    tabChangeClear(){
      if(this.oldWord!==''){
        this.$confirm('将会清空已输入的商品列表?,是否切换', "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
        //点击确认后的操作 在这里我是清空列表啦
          this.List = [];
        })
        .catch((err) => {
          if(err){
           //然后把刚刚在watch里存的旧值 赋给表单中的单选组
           this.Form.radio = this.oldWord;
          }
        });
      }
    },

总结

这里对文章进行总结:主要就是利用watch监听属性监听表单中的单选组的值,存下旧值,然后再确认框选否的时候再把旧值赋回去。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Java中,可以使用Swing框架中的JRadioButton组件来创建单选按钮,并使用ItemListener接口中的itemStateChanged()方法来监听单选按钮选择事件。在该方法中,可以根据单选按钮选择状态来赋值,并返回所赋的。 下面是一个示例代码: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class RadioButtonDemo extends JFrame implements ItemListener { private JRadioButton maleButton, femaleButton; private JLabel resultLabel; public RadioButtonDemo() { super("RadioButton Demo"); // 创建单选按钮 maleButton = new JRadioButton("Male"); femaleButton = new JRadioButton("Female"); // 创建按钮组 ButtonGroup genderGroup = new ButtonGroup(); genderGroup.add(maleButton); genderGroup.add(femaleButton); // 创建标签 resultLabel = new JLabel("Please select your gender."); // 将单选按钮和标签添加到窗口中 JPanel panel = new JPanel(); panel.add(maleButton); panel.add(femaleButton); panel.add(resultLabel); add(panel); // 添加事件监听器 maleButton.addItemListener(this); femaleButton.addItemListener(this); // 设置窗口属性 setSize(300, 100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } // 实现ItemListener接口中的itemStateChanged()方法 public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { // 根据单选按钮选择状态来赋值 if (e.getSource() == maleButton) { resultLabel.setText("You are male."); } else if (e.getSource() == femaleButton) { resultLabel.setText("You are female."); } // 返回所赋的 String result = resultLabel.getText(); System.out.println(result); } } public static void main(String[] args) { new RadioButtonDemo(); } } ``` 运行该程序,选择单选按钮后,触发itemStateChanged()方法,并在控制台输出所赋的
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值