项目场景:

el-input 是文本域类型,其绑定了失去焦点事件。 el-button是提交按钮。当点击提交按钮时,目的是执行提交操作,但出现bug,变为执行了el-input的失去焦点事件,没有执行submit事件。
在这里插入图片描述

点击按钮时会触发el-input的失去焦点事件

<div style="position: relative">
  <el-input type="textarea" :autosize="{ minRows: 3, maxRows: 6}" resize="none" v-model="textarea" placeholder="请输入内容" @blur="inputBlur"></el-input>
  <div style="position: absolute;bottom:5px;right:5px">
    <el-button size="mini" round @click="clearText">清除</el-button>
    <el-button size="mini" type="danger" round :disabled='textarea?false:true' @click="submit">提交</el-button>
  </div>
</div>

解决方案:

在按钮上绑定的事件从@click 改为 @mousedown 事件。因为失去焦点事件是mousedown默认触发的,所以,在点击的按钮上阻止mousedown的默认事件即可。
当 el-input 将@click替换为@mouseenter、@mousedown等鼠标事件[非鼠标点击事件]时,发现事件不触发(也就是失效了)
解决方案:在@mouseenter、@mousedown等鼠标事件后面加上native属性

<div style="position: relative">
  <el-input type="textarea" :autosize="{ minRows: 3, maxRows: 6}" resize="none" v-model="textarea" placeholder="请输入内容" @blur="inputBlur"></el-input>
  <div style="position: absolute;bottom:5px;right:5px">
    <el-button size="mini" round @mousedown.native="clearText">清除</el-button>
    <el-button size="mini" type="danger" round :disabled='textarea?false:true' @mousedown.native="submit">提交</el-button>
  </div>
</div>
submit(event) {
  // 即可阻止点击按钮时触发input失去焦点事件
  event.preventDefault()
                    el-input 是文本域类型,其绑定了失去焦点事件。el-button是提交按钮。当点击提交按钮时,目的是执行提交操作,但出现bug,变为执行了el-input的失去焦点事件,没有执行submit事件。
				
在开发中我们会经常遇到blur和click冲突的情况。下面叙述了开发中常遇到的“下拉框”的问题,并提供了两种解决方案。 一、blur和click事件简述 blur事件:当元素失去焦点触发blur事件;其为表单事件,blur和focus事件不会冒泡,其他表单事件都可以。 click事件:当点击元素触发click事件;所有元素都有此事件,会产生冒泡。 示例1:blur事件为表单事件 <input type="text" id="tel"> [removed] document.addEventListener("blur", function(){ console.log("my
整体思路是这样,当文本框的值改变触发事件,对列表中原有的值进行过滤。 根据这个思路,首先需要解决的无非是确定文本框的什么事件可以满足要求,当第一个想到的是onkeydown或者onkeypress,在试的过程中发现再输入中文,无法响应,因为输入方会将焦点给屏蔽了。在网上寻觅了一会发现onpropertychange事件为改变文本属性就会出发,所以当文本框输入数据的候其实是在改变文本框的value属性。而且中文也可以满足,本以为大功告成,最后才发现这个事件为IE的专属事件,其他的浏览器并没有该事件。而对应的oninput则可以满足需求。 具体的实现是,文本框,隐藏按钮,当在文本框输入内
做需求碰到了一个问题,就是input失去焦点触发请求接口操作,而点击旁边的按钮触发这个操作。这个问题困扰了挺长间,通过查阅资料找到了解决方案,记录一下。 1、在按钮点击操作添加一个onmousedown方法,使用e.preventDefault操作,这样就阻止了input焦点触发,简易代码如下。 <!DOCTYPE html> <html lang="en"> <meta charset=.
Bug具体内容:在input框中,失去焦点做了校验,并弹窗提示。在点保存又做了一遍校验,但是当在输入框输入内容后,不点击空白,直接点击保存按钮则会出现连续校验两遍的问题。因为失去焦点事件是mousedown默认触发的,所以,在点击按钮上阻止mousedown的默认事件即可。具体操作代码如下: 在按钮元素上绑定onmouse事件,函数: event.preventDefault()
vue点击按钮触发输入框失去焦点事件 之前在代码运行中发现 在给input添加失去焦点事件后(blur),点击返回按钮触发input失去焦点事件。 在返回按钮上添加 mousedown 方法 下面是方法: preventBlur(event){ event.preventDefault(); 当涉资搜索框的候,只有当按下回车键的候,才会发送请求,在下面展示信息,需求可能认为用户操作起来比较麻烦,就让我改成失去焦点和回车的候都能展示信息,当我以为也很简单,就是把回车事件改成失去焦点事件,但是没想到就这一出改动,让我花了半天多间来解决。 后来还是在导师的帮助下才解决的。下面,记录一下,我遇到的问题以及解决的方法:首先遇到第一个问题,就是清空输入框的候,如果焦点还是在输入框里面,就会出问题。 因为我用的是ant-design-mobile组件的第2.
要实现在el-input点击清空按钮触发click事件,可以使用以下方法: 1. 使用 @mousedown.prevent 替代 @click 事件来禁止默认行为。如下所示: ```html <el-input v-model="input" clearable @mousedown.prevent="clearInput"></el-input> ```javascript methods: { clearInput() { this.input = ''; 2. 在方法中使用 $refs 获取清空按钮元素,并使用 .blur() 方法使其失去焦点。如下所示: ```html <el-input v-model="input" clearable @click="clearInput"></el-input> ```javascript methods: { clearInput() { this.$refs.input.$refs.clearable.blur(); this.input = ''; 这样就可以实现在点击清空按钮触发click事件
this.mergeArr['CompanyName'].forEach((item, index) => { if (item[0] != 0) { this.indexNum[index] = num += 1 // 自定义序号 indexMethod(index) { return this.indexNum[index] [/code] 两个,是不?
Vue中导入excel文件的两种方式 Aya831: 对啊 这样写传递过去的参数是个空对象 el-table表格的行合并以及合并后序号的处理 多谢大佬,非常管用,谢谢! Vue中导入excel文件的两种方式 liu123dsajkghd: 为啥传递过去的参数是个空对象啊? Vue中导入excel文件的两种方式 CSDN-Ada助手: 不知道 Vue入门 技能树是否可以帮到你:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue