【发布时间】:2019-08-24 00:11:42
【问题描述】:
我正在尝试在输入事件中将用户输入转换为大写
所以,每当我在输入字段中键入一个键时,我都会遇到以下问题
- 当用户在中间输入时,光标会跳到输入值的末尾。
- 最后输入的字符(不是最后一个字符)未转换为大写。
这里是 JS fiddle https://jsfiddle.net/aeL051od/ 的链接以重现问题
new Vue({
el: "#app",
data() {
return {
input: null
}
},
methods: {
handleInput(e) {
this.input = e.target.value ?
e.target.value.toString().toUpperCase() :
e.target.value;
}
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
<input type="text" v-model="input" @input="handleInput"> {{ input }}
<!-- {{ input }} is just for reference -->
</div>
【问题讨论】:
-
您能解释一下变量
input和event的用途吗?因为似乎设置了错误的值 -
@anurupr
input是存储用户输入的输入值的 v-model,event是存储在@input 上发出的事件 -
预期输出是什么?当您键入每个字母时,显示部分中的每个字母都应该大写吗?
-
@TejaD 所以您希望数据以大写形式存储在
input中?还是您想要用户输入的原始输入? -
@MabehAl-ZuqYadeek 我希望用户输入的值全部大写(大写),当用户将光标移动到字母之间的某个位置并键入一个字符时,光标位置不应该跳到输入的末尾。
标签: javascript html vue.js