input - vue.js 为什么在 keyup 没有更改绑定数据时将 value 设置为 $event.target.value?
问题描述
我正在使用 Vue JS 2
试图过滤掉一些不需要的字符(, . & / \ ' "),我所做的是:</p>
- 通过 v-model 绑定输入数据
- 过滤掉非法字符并设置为何
filteredVal
时$event.target.value
键入
<template>
<div id="app">
<p>field1</p>
<input type="text" v-model="name" @keyup="filterText($event)" />
<p>name: {{ name }}</p>
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
name: ""
};
},
methods: {
filterText($event) {
var filteredVal = $event.target.value.replace(/[.,/\\&‘“]/g, "");
$event.target.value = filteredVal;
},
},
};
</script>
但是当我输入非法值(例如:test,)时,输入字段值与name
.
我知道this.name = filteredVal
可以按预期工作,但有什么区别?
解决方案
v-model 将忽略在任何表单元素上找到的初始值、选中或选定属性。它将始终将 Vue 实例数据视为事实来源。您应该在组件的 data 选项内声明 JavaScript 端的初始值。 您可以在https://vuejs.org/v2/guide/forms.html 中看到这一点。
推荐阅读
- java - 如何修复在 Android Studio 中找不到 interpolator-1.0.0.jar
- magento - Magento 2.4.2 中的销售订单网格问题:找不到列
- amazon-web-services - 如何在 Redshift 集群中启用数据共享?
- python - 将函数应用于熊猫 groupby 数据框中的所有列
- r - 计算R中一列中“+”的出现次数
- linux - Linux 中的 struct page* 在哪里初始化?
- reactjs - ts(2322): '调度
>' 不可分配给类型 '(value: OptionValue) => void' - javascript - 如何在 Electron 的主进程和渲染器进程之间共享类定义?
- r - pandoc 返回“无法解码字节 '\xf9'”
- list - Netlogo 列表:在列表中检测到一个特定补丁的最大距离的补丁 - 对于每只海龟