【发布时间】:2020-12-29 22:57:19
【问题描述】:
我想在 bootstrap-vue 的文件名输入中用下划线 _ 替换空格。但是如果我不在输入末尾添加一个空格,那么格式化程序会将光标位置移动到输入末尾。 如何在不改变光标位置的情况下替换空格?
我试过了:
<div class="form-group row">
<label class="col-6 col-md-4 col-lg-3 col-xl-3">File name</label>
<div class="col-6 col-md-8 col-lg-9 col-xl-9">
<b-input-group v-if="viewModel.offer">
<b-form-input ref="fileName" type="text" :formatter="formatter"></b-form-input>
<b-input-group-append>
<b-button variant="dark" v-b-popover.hover.top="'Download'" v-on:click=".."><i class="fas fa-arrow-circle-down"></i></b-button>
</b-input-group-append>
</b-input-group>
</div>
</div>
与:
formatter(value, event) {
const pos = event.target.selectionStart - 1
const nfileName = value.replace(/\s+/g, '_');
if (nfileName !== value) {
this.$nextTick(() => {
event.target.selectionEnd = pos
})
}
return nfileName;
}
但是 selectionStart 的值等于 selectionEnd,所以实际位置是未知的。
【问题讨论】:
标签: vue.js bootstrap-vue