1. 程式人生 > >【微信小程式】公共方法實現實時捕捉input輸入

【微信小程式】公共方法實現實時捕捉input輸入

專案中,一個表單中經常有好幾個input,但是微信小程式並不像vue那樣實現雙向繫結,所以我們要自己去實現當用戶輸入的時候,實時獲取使用者輸入的值。
方法比較簡單,就兩個步驟。

1.wxml

  <input data-name='form.base.name'  bindinput="inputChange" name="text" value="{{ form.base.name }}"  placeholder="請輸入姓名" />

2.js

page中有這個的data

 data: {
        avatar: '',
        form:
{ base: { name: '', age:0 } }

實現一個公共方法去實時獲取輸入的值

  //實時獲取input輸入
    inputChange(e) {
        const name = e.currentTarget.dataset.name;
        this.setData({
            [name]: e.detail.value
        })
    },
  • 這裡利用了setData中的key可以使用變數這個特性來實現,key為變數的時候要用[ ]引起來。在wxml中的input控制元件中,監聽bindinput方法的時候使用data-name=‘form.base.name’ 傳入這個data的key,在inputChange方法中獲取到這個name,然後獲取到使用者輸入的值,設定到data中即可。

  • 如果有多個input,同樣用上邊的方法,然後bindinput繫結inputChange,傳入key引數即可。