釘釘小程序可輸入的下拉框


一開始是打算這樣寫, 直接用input輸入框把picker的前面替換了,但是這個時候點擊輸入框,,下拉框也會彈出來

<view class="page">
  <view class="page-section">
    <input placeholder="請輸入" value="{{value}}" class="queryInput" onInput='inputChange' />
    <picker onChange="pickerChange" value="{{index}}" range="{{array}}">
      <view class="row">
          <input placeholder="請輸入" value="{{value}}" class="queryInput" onInput='inputChange' />
        <view class="row-extra">請選擇:{{array[index]}}</view>
        <image class="row-arrow" src="https://img.alicdn.com/tfs/TB1oVprf4vbeK8jSZPfXXariXXa-48-48.png" mode="aspectFill" />
      </view>
    </picker>
  </view>
</view>

本來想阻止事件默認行為,結果搞半天沒弄好,,於是我 就換了一種思路,就是把input輸入框和picker給分開寫,代碼如下

<view class="page">
  <view class="page-section">
    <input placeholder="請輸入" value="{{value}}" class="queryInput" onInput='inputChange' />
      <picker onChange="pickerChange" value="{{index}}" range="{{array}}">
        <view class="row">
          <view class="row-extra">請選擇:{{array[index]}}</view>
          <image class="row-arrow" src="https://img.alicdn.com/tfs/TB1oVprf4vbeK8jSZPfXXariXXa-48-48.png" mode="aspectFill" />
        </view>
      </picker>
      </view>
      </view>

然后設置css樣式,把picker放在右邊就可以

.queryInput {
  width: 3.9rem;
  height: 0.9rem;
  padding-left: 0.3rem;
}

.row {
  line-height: 0.9rem;
  text-align: center;
  float: right;
}

然后就是js,釘釘官方給的都有方法可以獲取和改變value值,代碼如下

Page({
  data: {
    array: ['java', 'php', 'js', 'c++', 'python', 'go'],
    // 輸入框的值
    value: '',
  },
  // 下拉選擇框value發生改變時
  pickerChange(e) {
    console.log(this.data.array[e.detail.value]);
    this.setData({
      value: this.data.array[e.detail.value]
    })

  },
  // input框value發生改變時
  inputChange(e) {
    console.log(e.detail.value);

  },
})

ok~完成~~

注意:里面用了釘釘內置的樣式方法,首先需要進入釘釘官方文檔把表單的樣式復制到自己的頁面里面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM