首頁 > 軟體

微信小程式常用表單元件的使用詳解

2022-03-17 10:00:55

1、常用表單元件

1.1 button

<button>為按鈕元件,是常用的表單元件之一,用於事件的觸發以及表單的提交。其屬性表如下所示。

程式碼範例:

<view class="demo-box">
  <view class="title">7.button小案例</view>
  <view class="title">(1)迷你按鈕</view>
  <button size="mini" type="primary">主要按鈕</button>
  <button size="mini" type="default">次要按鈕</button>
  <button size="mini" type="warn">警告按鈕</button>
  <view class="title">(2)按鈕狀態</view>
  <button>普通按鈕</button>
  <button disabled>警用按鈕</button>
  <button loading>載入按鈕</button>
  <view class="title">(3)增加按鈕事件</view>
  <button bindgetuserinfo="getUserDetail" open-type="getUserInfo">點我獲取使用者資訊</button>
</view>

1.2 checkbox

<checkbox>為核取方塊元件,常用於在表單中進行多項資料的選擇。核取方塊的<checkbox-group>為父控制元件,其內部巢狀若干個<checkbox>子控制元件。

<checkbox-group>屬性如下:

<checkbox>元件的屬性如下:

程式碼範例:

checkbox.wxml

<view class="demo-box">
  <view class="title">8.checkbox小案例</view>
  <view class="title">利用for迴圈批次生成</view>
  <checkbox-group bindchange="checkboxChange">
    <label wx:for="{{items}}">
      <checkbox value="{{item.name}}" checked="{{item.checked}}" />{{item.value}}
    </label>
  </checkbox-group>
</view>

checkbox.js

Page({
  data: {
    items: [
      { name: "tiger", value: "老虎" },
      { name: "elephant", value: "大象" },
      { name: "lion", value: "獅子", checked: "true" },
      { name: "penguin", value: "企鵝" },
      { name: "elk", value: "麋鹿" },
      { name: "swan", value: "天鵝" },
    ]
  },
  checkboxChange:function(e) {
    console.log("checkbox發生change事件,攜帶value值為:", e.detail.value)
  }
})

1.3 input

<input>為輸入框元件,常用於文字(如姓名、年齡等資訊)的輸入。屬性表如下:

<view class="demo-box">
  <view class="title">9.input小案例</view>
  <view class="title">(1)文字輸入框</view>
  <input type="text" maxlength="10" placeholder="這裡最多隻能輸入10個字" />
  <view class="title">(2)密碼輸入框</view>
  <input type="password" placeholder="請輸入密碼"/>
  <view class="title">(3)禁用輸入框</view>
  <input disabled placeholder="該輸入框已經被禁用"/>
  <view class="title">(4)為輸入框增加事件監聽</view>
  <input bindinput="getInput" bindblur="getBlur" placeholder="這裡輸入的內容將會被監聽"/>
</view>

1.4 label

<label>是標籤元件,不會呈現任何效果,但是可以用來改進表單元件的可用性。當用戶在label元素內點選文字時,就會觸發此控制元件,即當用戶選擇該標籤時,事件會傳遞到和標籤相關的表單控制元件上,可以使用for屬性繫結id,也可以將空間放在該標籤內部,該元件對應屬性如下所示。

wxml

<view class="demo-box">
  <view class="title">10.lable小案例</view>
  <view class="title">(1)利用for屬性</view>
  <checkbox-group>
    <checkbox id="tiger" checked />
    <label for="tiger">老虎</label>
    <checkbox id="elephant" />
    <label for="elephant">大象</label>
    <checkbox id="lion" />
    <label for="lion">獅子</label>
  </checkbox-group>
  <view class="title">(2)label包裹元件</view>
  <checkbox-group>
    <label>
      <checkbox checked />老虎
    </label>
    <label>
      <checkbox/>大象
    </label>
    <label>
      <checkbox/>獅子
    </label>
  </checkbox-group>
</view>

1.5 form

<form>為表單控制元件元件,用於提交表單元件中的內容。<form>控制元件元件內部可以巢狀多種元件。

元件屬性如下:

form.wxml

<view class="demo-box">
  <view class="title">11.form小案例</view>
  <view class="title">模擬註冊功能</view>
  <form bindsubmit="onSubmit" bindreset="onReset">
    <text>使用者名稱:</text>
    <input name="username" type="text" placeholder="請輸入你的使用者名稱"></input>
    <text>密碼:</text>
    <input name="password" type="password" placeholder="請輸入你的密碼"></input>
    <text>手機號:</text>
    <input name="phonenumber" type="password" placeholder="請輸入你的手機號"></input>
    <text>驗證碼:</text>
    <input name="code" type="password" placeholder="請輸入驗證碼"></input>
    <button form-type="submit">註冊</button>
    <button form-type="reset">重置</button>
  </form>
</view>

form.js

Page({
  onSubmit(e) {
    console.log("form發生了submit事件,攜帶資料為:")
    console.log(e.detail.value)
  },
  onReset() {
    console.log("form發生了reset事件,表單已被重置")
  }
})

輸入測試資料後點選註冊按鈕觸發表單提交事件。

1.6 radio

<radio>為單選框元件,往往需配合<radio-group>元件來使用,<radio>標籤巢狀在<radio-group>當中。

<radio-group>元件屬性如下:

<radio>元件屬性如下:

radio.wxml

<view class="demo-box">
  <view class="title">14.radio小案例</view>
  <view class="title">利用for迴圈批次生成</view>
  <radio-group bindchange="radioChange">
    <block wx:for="{{radioItems}}">
      <radio value="{{item.name}}" checked="{{item.checked}}" />{{item.value}}
    </block>
  </radio-group>
</view>

radio.js

Page({
  data: {
    radioItems: [
      { name: 'tiger', value: '老虎' },
      { name: 'elephant', value: '大象' },
      { name: 'lion', value: '獅子', checked: 'true' },
      { name: 'penguin', value: '企鵝' },
      { name: 'elk', value: '麋鹿' },
      { name: 'swan', value: '天鵝' },
    ]
  },
  radioChange:function(e) {
    console.log("radio發生change事件,攜帶value值為:", e.detail.value)
  }
})

1.7 slider

<slider>為滑動選擇器,用於視覺化地動態改變某變數地取值。屬性表如下:

slider.wxml

<view class="demo-box">
  <view class="title">15.slider小案例</view>
  <view class="title">(1)滑動條右側顯示當前進度值</view>
  <slider min="0" max="100" value="30" show-value />
  <view class="title">(2)自定義滑動條顏色與滾軸樣式</view>
  <slider min="0" max="100" value="30" block-size="20" block-color="gray" activeColor="skyblue" />
  <view class="title">(3)禁用滑動條</view>
  <slider disabled />
  <view class="title">(4)增加滑動條監聽事件</view>
  <slider min="0" max="100" value="30" bindchange="sliderChange" />
</view>

1.8 switch

<switch>為開關選擇器,常用於表單上地開關功能,屬性表如下所示。

switch.wxml

<view class="demo-box">
  <view class="title">16.switch小案例</view>
  <view class="title">增加switch事件監聽</view>
  <switch checked bindchange="switch1Change"></switch>
  <switch bindchange="switch2Change"></switch>
</view>

1.9 textarea

<textarea>為多行輸入框,常用於多行文字的輸入。

2、實訓小案例–問卷調查

survey.wxml

<view class="content">
  <form bindsubmit="onSubmit" bindreset="onReset">
    <view class="title">1.你現在大幾?</view>
    <radio-group bindchange="universityChange">
      <radio value="大一"/>大一
      <radio value="大二"/>大二
      <radio value="大三"/>大三
      <radio value="大四"/>大四
    </radio-group>

    <view class="title">2.你使用手機最大的用途是什麼?</view>
    <checkbox-group bindchange="mobilChange">
      <label><checkbox value="社交"/>社交</label>
      <label>
        <checkbox value="購物"/>網購</label>
      <label>
        <checkbox value="學習"/>學習</label><label>
        <checkbox value="其他"/>其他</label>

    </checkbox-group>
    <view class="title">3.平時每天使用手機多少小時?</view>
    <slider min="0" max="24" show-value bindchange="timechange" />

     <view class="title">4.你之前有使用過微信小程式嗎?</view>
    <radio-group bindchange="programChange">
      <radio value="無"/>無
      <radio value="有"/>有
    </radio-group>

    <view class="title">5.談談你對微信小程式未來發展的看法</view>
    <textarea auto-height placeholder="請輸入你的看法" name="textarea" />
    <button size="mini" form-type="submit">提交</button>
    <button size="mini" form-type="reset">重置</button>
  </form>
</view>

survey.js

Page({
  universityChange: function (e) {
    console.log("你選擇的現在大幾:", e.detail.value)
  },

  mobilChange: function (e) {
    console.log("你選擇使用手機的最大用途是:", e.detail.value)
  },


  timechange: function (e) {
    console.log("你選擇的每天使用手機的時間是:", e.detail.value + "小時")
  },

  programChange: function (e) {
    console.log("你選擇的是否使用過微信小程式:", e.detail.value)
  },
 
 
  onSubmit(e) {
    console.log("你輸入的對小程式發展前途的看法是:"+e.detail.value.textarea)

  },
  onReset() {
    console.log("表單已被重置")
  }
})

更多內容請參考微信官方檔案

以上就是微信小程式常用表單元件的使用詳解的詳細內容,更多關於小程式表單元件的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com