美文网首页微信小程序开发
微信小程序--组件input输入框控件的使用示例(含源码)

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

作者: 5bcf74f3a802 | 来源:发表于2017-03-10 12:22 被阅读2076次

今天主要详写一下微信小程序中的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小程序共同成长,成为微信小程序定制开发专家。

相关文章

网友评论

  • 陈德省:推荐MinUI小程序自定义组件库,她是基于规范的小程序 UI 组件库,自定义标签组件,简洁、易用、工具化 ,完全开源免费,组件丰富好用,github:https://github.com/meili/minui

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

本文链接:https://www.haomeiwen.com/subject/gwvngttx.html