elementUI 输入框按回车刷新页面分析与解决

1.如果你是在Element UI框架中使用<el-input>组件,并希望阻止回车键导致的页面刷新,你可以使用Vue的.prevent修饰符来阻止默认的表单提交行为。
<el-form @submit.native.prevent>
  <el-form-item>
    <el-input v-model="input" placeholder="请输入内容"></el-input>
  </el-form-item>
</el-form>

 在这个例子中,@submit.native.prevent会阻止表单的默认提交行为,从而阻止了按下回车键时的页面刷新。

解决:将 @submit.native.prevent注解添加到el-form标签上。

 .native 表示对一个组件绑定系统原生事件

.prevent 表示阻止默认事件(如form的submit事件默认提交会刷新页面,.prevent修饰符可以阻止该默认事件)

分析原因:

当 el-form 表单内只有一个 el-input 输入框时,且type为text类型时,在输入框内按回车就会触发表单的提交事件。

<el-form>
  <el-form-item>
    <el-input v-model="input" placeholder="请输入内容"></el-input>
  </el-form-item>
</el-form>

而当 el-form 表单内有多个 el-input 输入框时,按回车不会执行任何操作。

<el-form>
  <el-form-item>
    <el-input v-model="input1" placeholder="请输入内容"></el-input>
  </el-form-item>
 <el-form-item>
    <el-input v-model="input2" placeholder="请输入内容"></el-input>
  </el-form-item>
</el-form>
2.如果你希望在Element UI中阻止特定的<el-form-item>下的<el-input>组件在按下回车键时刷新页面,你可以在该<el-input>组件上添加一个@keydown.enter.prevent事件监听器。

注意:如果你发现@keydown.enter.prevent在Element UI的<el-input>组件中不起作用,那可能是因为<el-input>组件内部实际上是一个包装了原生<input>的组件,所以你需要使用.native修饰符来监听原生的keydown事件。

<el-form>
  <el-form-item>
    <el-input v-model="input1" type="textarea"></el-input>
  </el-form-item>
  <el-form-item>
    <el-input v-model="input2" placeholder="请输入内容" @keydown.enter.native.prevent></el-input>
  </el-form-item>
</el-form>

在这个例子中,@keydown.enter.native.prevent会阻止第二个<el-input>组件在按下回车键时的默认行为,从而阻止了页面刷新。注意,这只会影响第二个<el-input>组件,第一个<el-input>组件的行为不会受到影响。 

3.@keyup.enter 和@keydown.enter键盘事件选择

- @keydown.enter:当用户按下回车键时触发。在按键被按下的那一刻就会触发,而不管是否已经松开。

- @keyup.enter:当用户松开回车键时触发。只有在按键被完全松开后才会触发。

在阻止表单提交的情况下,通常使用@keydown.enter更为有效。

原因:因为浏览器通常在按键按下的时候就开始处理表单提交,而不是在按键松开的时候。所以,当你使用@keyup.enter.native.prevent时,浏览器可能已经开始提交表单,因此无法阻止表单的提交。

而当你使用@keydown.enter.native.prevent时,你是在按键被按下的那一刻阻止了默认的表单提交行为,所以它能够有效地阻止表单的提交。

这就是为什么@keydown.enter.native.prevent能够阻止表单的提交,而@keyup.enter.native.prevent不能。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
ElementUI输入框的样式可以通过修改类样式来实现。可以使用自定义的类样式来修改输入框的样式,也可以通过样式穿透来修改原本的类样式。 如果要使用自定义的类样式来修改输入框的样式,可以按照以下步骤进行操作: 1. 在`<style>`标签中定义一个自定义的类样式,比如`.input_border`,并设置`border-radius`属性为30px。 2. 在`<el-input>`组件中使用`:class`属性将自定义的类样式应用到输入框上,例如`:class="input_border"`。 3. 这样就可以通过自定义的类样式来修改输入框的样式了。 如果要通过样式穿透来修改原本的类样式,可以按照以下步骤进行操作: 1. 在`<style>`标签中使用`/deep/`或`>>>`选择器来穿透样式,例如`/deep/.el-input__inner`或`>>> .el-input__inner`。 2. 在穿透的选择器中设置需要修改的样式属性,比如`background-color`、`color`和`border`等。 3. 这样就可以通过样式穿透来修改输入框的样式了。 需要注意的是,以上的方法适用于ElementUI输入框组件,对于其他ElementUI组件也可以采用类似的方式进行样式修改。 #### 引用[.reference_title] - *1* [Vue修改element-ui库的输入框样式--样式穿透](https://blog.csdn.net/qwqc262/article/details/119806712)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [(Select)解决:Element-ui 中 Select 选择器下拉样式及输入框样式的修改问题(背景色透明与悬停背景色变化...](https://blog.csdn.net/weixin_43405300/article/details/124534512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [elementUI输入框组件 样式自定义 高度、圆角、边距调整 图标跟随](https://blog.csdn.net/qq_36640955/article/details/105597473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值