微信小程序--组件input输入框控件的使用示例(含源码)

今天主要详写一下微信小程序中的Input输入框控件,输入框在程序中是最常见的,登录,注册,获取搜索框中的内容等等都需要,同时,还需要设置不同样式的输入框,今天的代码中都要相应的使用。今天给大家系统的介绍一下微信小程序定制过程中用到的Input输入框控件。输入框在程序开发中是经常用到的,比较常见的地方,如:登录、注册、搜索等。另外输入框在不同的场景下,也会有不同的样式。这里给大家示范一下各种场景下的实例效果和代码。以便需要的时候直接采用。官方文档中,对于input输入框的相关属性:


下面看一下这个示例程序运行的效果:

各类输入框展示的效果图:

下面就index页面我们做个讲解:

如果在同一个form表单中创建了多个input输入框,可以给给每个输入框,创建自己的
name=“userName”属性,可以区别哪个输入框,并通过添加
属性提交:bindsubmit="方法名" 重置:bindreset="方法名",达到清除输入框内容的目的
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
//获取应用实例
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
    })
  },
  //登录按钮点击事件,调用参数要用:this.data.参数;
  //设置参数值,要使用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
      })
    }
  },
  //重置按钮点击事件
  resetBtnClick:function(e){
    this.setData({
      infoMess: '',
      userName: '',
      userN:'',
      passWd: '',
      passW:'',
    })
  },
  onLoad: function () {
    console.log('onLoad')
    var that = this
    //调用应用实例的方法获取全局数据
    app.getUserInfo(function(userInfo){
      //更新数据
      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="自动聚焦弹出键盘,一个页面中只能有一个" auto-focus/>
</view>
<view class="section">
    <input class="input" placeholder="此处只有在点击下方按钮时才聚焦" focus="{{focus}}" />
</view>
<view class="section1">
    <button bindtap="bindButtonTap">使得输入框获取焦点</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="连续的两个1会变成2" />
</view>
<view class="section">
    <input class="input" bindinput="bindHideKeyboard" placeholder="输入123自动收起键盘" />
</view>
<view class="section">
    <input class="input" type="number" placeholder="这是一个数字输入框" />
</view>
<view class="section">
    <input class="input" password type="text" placeholder="这是一个密码输入框" />
</view>
<view class="section">
    <input class="input" type="digit" placeholder="带小数点的数字键盘"/>
</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){
      // 光标在中间
      var left = e.detail.value.slice(0,pos)
      // 计算光标的位置
      pos = left.replace(/11/g,'2').length
    }
 
    // 直接返回对象,可以对输入进行过滤处理,同时可以控制光标的位置
    return {
      value: value.replace(/11/g,'2'),
      cursor: pos
    }
 
    // 或者直接返回字符串,光标在最后边
    // return value.replace(/11/g,'2'),
  },
  bindHideKeyboard: function(e) {
    if (e.detail.value === "123") {
      //收起键盘
      wx.hideKeyboard()
    }
  },
 
 
  onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  }
})

本文涉及的源码如下页面可以下载:
http://bbs.html51.com/t-807-1-1/

更多微信小程序教程请至51小程序官网查看:http://html51.com/
欢迎您与51小程序共同成长,成为微信小程序定制开发专家。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容