美文网首页微信小程序开发
微信小程序--组件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