今天主要詳寫一下微信小程序中的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ā)專家沪羔。