<input style=" color: red; font-size: 36rpx;font-weight:bold;" disabled="boolean" name='totalPrice' bindchange="totalPriceInputed" model:value="{{(wxs.getMetalPrices(totalcaltor,ptcaltor,discountcaltor,prices.pt) + wxs.getMetalPrices(totalcaltor,pdcaltor,discountcaltor,prices.pd) + wxs.getMetalPrices(totalcaltor,rhcaltor,discountcaltor,prices.rh) )/10}}"></input> 这段代码中bindchange="totalPriceInputed"不能在model:value改变时触发,请问这是为什么?
时间: 2023-07-19 18:49:39 浏览: 99
`model:value`是双向绑定的属性,当输入框的值发生变化时,它会实时地更新绑定的变量的值。而`bindchange`事件是在输入框失去焦点时触发的,也就是用户完成输入并且输入框失去焦点时才会触发。
因此,当用户在输入框中输入时,`model:value`会实时更新绑定的变量的值,但是因为输入框并没有失去焦点,所以`bindchange`事件并不会被触发。如果想要在用户输入时实时地触发事件,应该使用`bindinput`事件。`bindinput`事件会在用户输入时实时触发,也就是输入框中的值发生变化时就会触发。
如果想要在输入框的值发生变化时触发事件,可以使用`bindinput`或者`bindblur`事件。`bindinput`事件会在用户输入时实时触发,而`bindblur`事件会在输入框失去焦点时触发。根据实际需要选择合适的事件即可。
相关问题
<view style="text-align: center;margin-top: 10rpx;"> <view style=" color: red; font-size: 36rpx;font-weight:bold;">总价:</view> <input style=" color: red; font-size: 36rpx;font-weight:bold;" disabled="boolean" name='totalPrice' bindinput="totalPriceInputed" model:value="{{(wxs.getMetalPrices(totalcaltor,ptcaltor,discountcaltor,prices.pt) + wxs.getMetalPrices(totalcaltor,pdcaltor,discountcaltor,prices.pd) + wxs.getMetalPrices(totalcaltor,rhcaltor,discountcaltor,prices.rh) )/10}}"></input> </view>这段代码中bindinput="totalPriceInputed"不能在model:value改变时触发,请问这是为什么?
`bindinput`事件是在用户输入时触发的,而`model:value`是在数据发生变化时才会触发的。所以,当用户在输入框中输入时,`bindinput`事件会被触发,但是当`model:value`发生变化时,`bindinput`事件并不会被触发。
如果想要在`model:value`发生变化时触发事件,应该使用`bindchange`事件。`bindchange`事件会在数据发生变化并且输入框失去焦点时触发。所以,可以将代码中的`bindinput`修改为`bindchange`,这样当`model:value`的值发生变化并且输入框失去焦点时,就会触发`totalPriceInputed`函数。修改后的代码如下:
```
<view style="text-align: center; margin-top: 10rpx;">
<view style="color: red; font-size: 36rpx; font-weight: bold;">总价:</view>
<input style="color: red; font-size: 36rpx; font-weight: bold;" disabled="{{false}}" name="totalPrice" bindchange="totalPriceInputed" model:value="{{(wxs.getMetalPrices(totalcaltor, ptcaltor, discountcaltor, prices.pt) + wxs.getMetalPrices(totalcaltor, pdcaltor, discountcaltor, prices.pd) + wxs.getMetalPrices(totalcaltor, rhcaltor, discountcaltor, prices.rh)) / 10}}"></input>
</view>
```
<input style=" color: red; font-size: 36rpx;font-weight:bold;" disabled="boolean" name='totalPrice' bindchange="totalPriceInputed" value="{{(wxs.getMetalPrices(totalcaltor,ptcaltor,discountcaltor,prices.pt) + wxs.getMetalPrices(totalcaltor,pdcaltor,discountcaltor,prices.pd) + wxs.getMetalPrices(totalcaltor,rhcaltor,discountcaltor,prices.rh) )/10}}"></input> 怎么修改这段代码让value值改变时触发函数totalPriceInputed
可以将代码中的`bindchange`属性修改为`bindinput`,并将`disabled="boolean"`修改为`disabled="{{false}}"`,这样当输入框的值改变时,就会触发`totalPriceInputed`函数。修改后的代码如下:
```
<input style="color: red; font-size: 36rpx; font-weight: bold;" disabled="{{false}}" name='totalPrice' bindinput="totalPriceInputed" value="{{(wxs.getMetalPrices(totalcaltor,ptcaltor,discountcaltor,prices.pt) + wxs.getMetalPrices(totalcaltor,pdcaltor,discountcaltor,prices.pd) + wxs.getMetalPrices(totalcaltor,rhcaltor,discountcaltor,prices.rh) )/10}}"></input>
```
阅读全文