【发布时间】:2020-07-27 23:58:28
【问题描述】:
我有一个字段,我想限制允许的字符输入(按键和复制/粘贴)。
我只想要数字 0-9 和字母 A-F(十六进制)。不允许键入/粘贴其他字符。
我目前有这样的事情:
<div v-for="(val, index) in obj">
<q-input outlined v-model="obj[index]" label="Labels" @input="checkChars($event, obj[index])"/>
</div>
请注意,这将在一个循环中,obj[index] 是动态的。同样,我传递的是“字符串”类型的变量,而不是对象(所以不能利用可变性)。
例如,如果我输入12kja,我只希望它允许12a
那么这是我的 javascript 代码:
checkChars (eventValue, param) {
var newVal = eventValue.replace(/[^a-fA-F 0-9\n\r]+/g, '')
console.log('newVal = ' + newVal) // so this prints out 12a correctly
param = newVal // update the parameter with new value
console.log('obj[val1] = ' + this.obj['val1']) // however, this still prints out 12kja
}
如何才能使obj[index] 实际更新并在q-input 文本框上反应性地反映?或者有没有办法传递obj[index] 作为参考?
【问题讨论】:
-
您能否为此使用代码框创建一个small demo 来显示正在发生的问题。这将有助于我们以更好的方式审查问题。
-
谢谢。我已经用我的 codepen 的链接更新了我的帖子:codepen.io/kzaiwo/pen/gOaPYBV?editors=1011
标签: javascript html node.js vue.js