在開發的時候遇到這么一種情況,我們希望input輸入框的值是范圍是0-100或者保留兩位小數之類的,當你輸入時處理后的結果卻不生效,但是試過很多辦法發現都實現不了,最后是按照以下方法解決的,問題原因是uni-app會延時,導致輸入的結果和打印的結果有時間誤差,不一致!所以我們需要加一個定時器
<u-input v-model="formData.receiptQuantity" @input="handleInput"placeholder="請輸入份數(0-100)" type="number">
</u-input>
?
- // uni-app框架官方說明:input事件處理函數內實時修改當前值不生效,可以延遲設置!
- // 延時的結果,輸入的結果和打印的結果一致!?
function handleInput(event) {setTimeout(() => {let value = eventif (isNaN(value) || value < 0) {value = 0;} else if (value > 100) {value = 100;}formData.value.receiptQuantity = value},0)
}