关于v-model 绑定数组的坑,并附带两个文本框的正则,一个小数,一个正整数!可以参考下
由于我的数组gsData[] 和 rsData[] 的下标,是 在v-for里获取的,
当我在文本框输入值的时候,只能自上而下输入,哪怕我光标停留在第二个文本框,它也会输入在第一个文本框,
<tr class="row" v-for="(item,index) in SUB_ZhiGxData">
<td class="col-lg-1">{{item.zhigxmc}}
</td>
<td>
<!--只能输入小数-->
<input id="WorkingHours" v-model="gsData[index]" href="abc" type="text" autocomplete="off"
onkeyup="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')"
placeholder="输入工时" />
</td>
<td>
<!--只能输入正整数-->
<input id="ProductionLineNum" v-model="rsData[index]" type="text" value="1"
onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}
else{this.value=this.value.replace(/\D/g,'')}"
onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'0')}else{this.value=this.value.replace(/\D/g,'')}"
placeholder="输入人数" autofocus/>
</td>
</tr>
你在成测那里输入一个3,它会输入在半测那里,然后再耐压,最后才是成测
然后各种尝试,各种百度,不说了~~~~
最后找到答案了,
大致意思是,先给 v-for 里的数组 赋值为空,
currSelf.gsData=[];
currSelf.rsData=[];
像这样赋值时没用的!
必须这样,前提你的v-for里数组 有值,
currSelf.SUB_ZhiGxData.push({
//具体的就不写了
});
然后在ajax里complete函数里用Vue.set给数组每个元素赋值给"",
complete: function () {
$.hideLoading();
for(var i in currSelf.SUB_ZhiGxData){
Vue.set(currSelf.gsData,i,"");
Vue.set(currSelf.rsData,i,"");
}
}
这样,我的文本框就可以随便输入了,不用按顺序了,