微信小程序--組件input輸入框控件的使用示例(含源碼)

今天主要詳寫一下微信小程序中的Input輸入框控件击吱,輸入框在程序中是最常見的淋淀,登錄,注冊姨拥,獲取搜索框中的內(nèi)容等等都需要绅喉,同時(shí),還需要設(shè)置不同樣式的輸入框叫乌,今天的代碼中都要相應(yīng)的使用。今天給大家系統(tǒng)的介紹一下微信小程序定制過程中用到的Input輸入框控件徽缚。輸入框在程序開發(fā)中是經(jīng)常用到的憨奸,比較常見的地方,如:登錄凿试、注冊排宰、搜索等。另外輸入框在不同的場景下那婉,也會有不同的樣式板甘。這里給大家示范一下各種場景下的實(shí)例效果和代碼。以便需要的時(shí)候直接采用详炬。官方文檔中盐类,對于input輸入框的相關(guān)屬性:


下面看一下這個(gè)示例程序運(yùn)行的效果:

各類輸入框展示的效果圖:

下面就index頁面我們做個(gè)講解:

如果在同一個(gè)form表單中創(chuàng)建了多個(gè)input輸入框,可以給給每個(gè)輸入框呛谜,創(chuàng)建自己的
name=“userName”屬性在跳,可以區(qū)別哪個(gè)輸入框,并通過添加
屬性提交:bindsubmit="方法名" 重置:bindreset="方法名"隐岛,達(dá)到清除輸入框內(nèi)容的目的
js文件中的用法猫妙,e.detail.value.userName.length

index頁面的WXML代碼如下:

<!--index.wxml-->
<view class="itemView">用戶名:
    <input class="input" name="userName" placeholder="請輸入用戶名"
    bindinput="userNameInput"/>
  </view>
<view class="itemView">密    碼:
    <input class="input" password placeholder="請輸入密碼"
     bindinput="passWdInput" />
  </view>
<view class="viewName" style="background-color:#fbf9fe">
  <button class="loginBtn" bindtap="loginBtnClick">登錄</button>
  <button class="resetBtn" bindtap="resetBtnClick">清除</button>
</view>
<view>{{infoMess}}</view>
<view>{{userName}}</view>
<view>{{passWd}}</view>
<view class="viewName" style="margin-top: 60px;">
  <navigator url="Component/TextInput/TextInput">
    <text class="view-Name">各類型輸入框展示</text>
  </navigator>
</view>

index頁面的WXSS代碼如下:

/**index.wxss**/
.itemView{
  margin-top: 10px;
  margin-left: 10px;
  margin-right: 10px;
  height: 50px;
 
  justify-content: flex-start;
  display: flex;
  align-items: center;
}
.input{
width: 250px;
height: 50px; 
border: 1px solid lightgray;
border-radius: 25px;
}

index頁面的JS代碼如下:

//index.js
//獲取應(yīng)用實(shí)例
var app = getApp()
Page({
  data: {
    infoMess: '',
    userName: '',
    userN:'',
    passWd: '',
    passW:''
  },
  //用戶名和密碼輸入框事件
  userNameInput:function(e){
    this.setData({
      userN:e.detail.value
    })
  },
  passWdInput:function(e){
    this.setData({
      passW:e.detail.value
    })
  },
  //登錄按鈕點(diǎn)擊事件,調(diào)用參數(shù)要用:this.data.參數(shù)聚凹;
  //設(shè)置參數(shù)值割坠,要使用this.setData({})方法
  loginBtnClick:function(){
    if(this.data.userN.length == 0 || this.data.passW.length == 0){
      this.setData({
        infoMess:'溫馨提示:用戶名和密碼不能為空!',
      })
    }else{
      this.setData({
        infoMess:'',
        userName:'用戶名:'+this.data.userN,
        passWd:'密碼:'+this.data.passW
      })
    }
  },
  //重置按鈕點(diǎn)擊事件
  resetBtnClick:function(e){
    this.setData({
      infoMess: '',
      userName: '',
      userN:'',
      passWd: '',
      passW:'',
    })
  },
  onLoad: function () {
    console.log('onLoad')
    var that = this
    //調(diào)用應(yīng)用實(shí)例的方法獲取全局?jǐn)?shù)據(jù)
    app.getUserInfo(function(userInfo){
      //更新數(shù)據(jù)
      that.setData({
        userInfo:userInfo
      })
    })
  }
})

TextInput頁面的WXML代碼如下:

<!--pages/index/Component/TextInput/TextInput.wxml-->
<view class="viewTitle">
    <text class="view-Name">TextInput輸入框展示</text>
    <view class="lineView"></view>
</view>
<view class="section">
    <input class="input" placeholder-style="font-size:15px"
    placeholder="自動聚焦彈出鍵盤妒牙,一個(gè)頁面中只能有一個(gè)" auto-focus/>
</view>
<view class="section">
    <input class="input" placeholder="此處只有在點(diǎn)擊下方按鈕時(shí)才聚焦" focus="{{focus}}" />
</view>
<view class="section1">
    <button bindtap="bindButtonTap">使得輸入框獲取焦點(diǎn)</button>
</view>
<view class="section">
    <input class="input" maxlength="10" placeholder="最大輸入長度10" />
</view>
<view class="section__title">你輸入的是:{{inputValue}}</view>
<view class="section">
    <input class="input" bindinput="bindKeyInput" placeholder="輸入同步到view中"/>
</view>
<view class="section">
    <input class="input" bindinput="bindReplaceInput" placeholder="連續(xù)的兩個(gè)1會變成2" />
</view>
<view class="section">
    <input class="input" bindinput="bindHideKeyboard" placeholder="輸入123自動收起鍵盤" />
</view>
<view class="section">
    <input class="input" type="number" placeholder="這是一個(gè)數(shù)字輸入框" />
</view>
<view class="section">
    <input class="input" password type="text" placeholder="這是一個(gè)密碼輸入框" />
</view>
<view class="section">
    <input class="input" type="digit" placeholder="帶小數(shù)點(diǎn)的數(shù)字鍵盤"/>
</view>
<view class="section">
    <input class="input" type="idcard" placeholder="身份證輸入鍵盤" />
</view>
<view class="section">
    <input class="input" placeholder-style="color:red" placeholder="占位符字體是紅色的" />
</view>

TextInput頁面的WXSS代碼如下:

/* pages/index/Component/TextInput/TextInput.wxss */
.section{
  margin-top: 10px;
  margin-left: 20px;
  margin-right: 20px;
  height: 50px;
  border: 2px solid red;
  border-radius: 25px;
}
.input{
padding-left: 10px;
height: 44px; 
}
.section__title{
    margin-top: 10px;
}
.section1{
    margin-top: 10px;
}

TextInput頁面的JS代碼如下:

// pages/index/Component/TextInput/TextInput.js
Page({
  data: {
    focus: false,
    inputValue: ''
  },
  bindButtonTap: function() {
    this.setData({
      focus: true
    })
  },
  bindKeyInput: function(e) {
    this.setData({
      inputValue: e.detail.value
    })
  },
  bindReplaceInput: function(e) {
    var value = e.detail.value
    var pos = e.detail.cursor
    if(pos != -1){
      // 光標(biāo)在中間
      var left = e.detail.value.slice(0,pos)
      // 計(jì)算光標(biāo)的位置
      pos = left.replace(/11/g,'2').length
    }
 
    // 直接返回對象彼哼,可以對輸入進(jìn)行過濾處理,同時(shí)可以控制光標(biāo)的位置
    return {
      value: value.replace(/11/g,'2'),
      cursor: pos
    }
 
    // 或者直接返回字符串,光標(biāo)在最后邊
    // return value.replace(/11/g,'2'),
  },
  bindHideKeyboard: function(e) {
    if (e.detail.value === "123") {
      //收起鍵盤
      wx.hideKeyboard()
    }
  },
 
 
  onLoad:function(options){
    // 頁面初始化 options為頁面跳轉(zhuǎn)所帶來的參數(shù)
  },
  onReady:function(){
    // 頁面渲染完成
  },
  onShow:function(){
    // 頁面顯示
  },
  onHide:function(){
    // 頁面隱藏
  },
  onUnload:function(){
    // 頁面關(guān)閉
  }
})

本文涉及的源碼如下頁面可以下載:
http://bbs.html51.com/t-807-1-1/

更多微信小程序教程請至51小程序官網(wǎng)查看:http://html51.com/
歡迎您與51小程序共同成長单旁,成為微信小程序定制開發(fā)專家沪羔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蔫饰,更是在濱河造成了極大的恐慌琅豆,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篓吁,死亡現(xiàn)場離奇詭異茫因,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)杖剪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門冻押,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人盛嘿,你說我怎么就攤上這事洛巢。” “怎么了次兆?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵稿茉,是天一觀的道長。 經(jīng)常有香客問我芥炭,道長漓库,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任园蝠,我火速辦了婚禮渺蒿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘彪薛。我一直安慰自己茂装,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布陪汽。 她就那樣靜靜地躺著训唱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪挚冤。 梳的紋絲不亂的頭發(fā)上况增,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機(jī)與錄音训挡,去河邊找鬼澳骤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛澜薄,可吹牛的內(nèi)容都是我干的为肮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肤京,長吁一口氣:“原來是場噩夢啊……” “哼颊艳!你這毒婦竟也來了茅特?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤棋枕,失蹤者是張志新(化名)和其女友劉穎白修,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體重斑,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兵睛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了窥浪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片祖很。...
    茶點(diǎn)故事閱讀 40,096評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖漾脂,靈堂內(nèi)的尸體忽然破棺而出假颇,到底是詐尸還是另有隱情,我是刑警寧澤符相,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布拆融,位于F島的核電站,受9級特大地震影響啊终,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜傲须,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一蓝牲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧泰讽,春花似錦例衍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至累澡,卻和暖如春梦抢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愧哟。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工奥吩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蕊梧。 一個(gè)月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓霞赫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親肥矢。 傳聞我的和親對象是個(gè)殘疾皇子端衰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容