Input vue.js为什么在keyup没有';不改变绑定的数据?

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

我正在使用VUEJS2

试图过滤掉一些不需要的字符(,.&/\'),我要做的是:

  • 通过v-model绑定输入数据
  • 过滤掉非法字符,并在键入时将
    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>