当前位置: 首页 > 知识库问答 >
问题:

javascript - 改变e.target.value的值,v-model监测不到数值的改变是为什么?

袁琪
2023-11-17

el-input标签,使用自定义指令,只允许输入数字,同时使用el-from的必填验证。
当先输入汉字,再输入数字的时候,e.target.value可以正确拿到输入项,但是表单验证的value拿不到e.target.value,但是document.getElementById('XXX').value的方式,却可以拿到正确的值,是为什么。
此为自定义指令代码
image.png
此为el-input部分代码
image.png
此为表单验证必填项代码
image.png
此为控制台输出
image.png

共有1个答案

施利
2023-11-17

v-model做了两件事,一是把他的值也就是orderId赋值给input,二是监听input的change和input事件,将input的值反映射到orderId。这是vue做的。

而你的指令中,只是修改了input的值,并没有将这个值映射到orderId。这是你没做的。

那现在需要做的就是实时更新orderId的值,这可以在指令中主动触发下input的change事件,或者通过指令参数的形式去修改orderId值,如给指令加一个回调函数,或者把orderId传进指令(需要注意是值的传递是按值传递,不是按引用,意思你不能单纯的传个xxx.orderId,可能需要把xxx传进去)

 类似资料:
  • 问题内容: 我有一个班级和年龄段。但是,当我更改对象的年龄时,该类的所有其他对象也会更改。 有人可以帮助解决这个问题吗? 问题答案: 静态变量 是 类变量, 因此从变量声明中删除为: 根据java docs: 在声明中具有static修饰符的字段称为静态字段或类变量。它们与类关联,而不与任何对象关联。该类的每个实例共享一个类变量,该变量位于内存中的一个固定位置。

  • #include <stdio.h> int main(void) { char p1[] = "Sam"; char *p2 = "Bob"; printf("p1 is %s, p2 is %s\n", p1, p2); return 0; } 技巧 使用gdb调试程序时,可以用“set”命令改变字符串的值,以上面程序为例: (gdb) start Tem

  • 假设我有2个无符号数字,每个32位,保存在一个数组中。第一个数字包含在位置 [0; 3] 中,第二个数字包含在位置 [4; 8] 中。我现在要更改其中一个数字的值,以下代码是否允许/有问题?

  • 考虑: 为什么改变的值会改变的值?

  • 我正在尝试使用一个条件,以红色显示负值,以绿色显示正值。这是我所拥有的,但我无法获得积极的值来显示。我在这里该怎么办?在我的情况下如何使用if/else条件?

  • 基本上,我试图用一个名为“a”的变量设置数组的长度,并将其声明为3和int。当我试图用for循环查看所有元素时,我不会将“null”作为元素。到现在为止,一直都还不错。然而,当有人想向该数组中添加一个元素时,我会向提到的变量“a”中添加1,从而延长该数组的长度,并允许我向该数组中再添加一个元素。但它不起作用。以下是代码: }