Input vue.js为什么在keyup没有';不改变绑定的数据?
我正在使用VUEJS2 试图过滤掉一些不需要的字符(,.&/\'),我要做的是:Input vue.js为什么在keyup没有';不改变绑定的数据?,input,vuejs2,Input,Vuejs2,我正在使用VUEJS2 试图过滤掉一些不需要的字符(,.&/\'),我要做的是: 通过v-model绑定输入数据 过滤掉非法字符,并在键入时将filteredVal设置为$event.target.value 字段1 名称:{{name} 导出默认值{ 名称:“应用程序”, 数据(){ 返回{ 姓名:“ }; }, 方法:{ filterText($event){ var filteredVal=$event.target.value.replace(/[,/\\&'”)/g,”; $even
filteredVal
设置为$event.target.value
字段1
名称:{{name}
导出默认值{
名称:“应用程序”,
数据(){
返回{
姓名:“
};
},
方法:{
filterText($event){
var filteredVal=$event.target.value.replace(/[,/\\&'”)/g,”;
$event.target.value=filteredVal;
},
},
};
但是,当我输入非法值(例如:test,)时,输入字段值与name
不同
我知道this.name=filteredVal可以按预期工作,但有什么区别
v-model将忽略在任何表单元素上找到的初始值、选中的或选定的属性。它将始终将Vue实例数据视为真理的来源。您应该在组件的数据选项内的JavaScript端声明初始值。
您可以在中看到这一点。因此我只能通过绑定数据更改值!感谢您的回复:)
<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>