小程序input的一些坑点

单聘仁
• 阅读 1954

最近在开发中遇到的一些坑点

  1. 表单组件(input)如何阻止冒泡
  2. 在容器(fixed)中的input如何弹出键盘

阻止input冒泡

<view bind:tap="onTap" class="container">
    <input bindinput="onBindInput" type="text"/>
</view>

上例中input操作会冒泡到container,导致onTap响应执行

修正

<view bind:tap="onTap" class="container">
    <input bindinput="onBindInput" type="text" catch:tap="empty"/>
</view>

冒泡的问题是由input的tap事件导致,因此定义一个empty的空方法,使它响应input的catch:tap,来达到阻止input的冒泡的作用

在容器(fixed)中的input如何弹出键盘

<view class="container" style="position: fixed; bottom: 0">
    <input bindinput="onBindInput" type="text"/>
</view>

container组件在屏幕底部出现,点击Input组件时,弹出的键盘会遮盖input输入框

修正

<view class="container" style="position: fixed; bottom: 0; {{mystyle}}">
    <input bindinput="onBindInput" bindkeyboardheightchange="onkeybord" type="text"/>
</view>
Page({
    data: {
        mystyle: '',
    },
    
    onkeybord(e){
        let detail = e.detail
        let kbHeight = detail.height
        let tool = Pager.getElementsById('reminder-tool')
        if (kbHeight === 0) {
          this.setData({
              mystyle: ' '
          })
        }

        if (kbHeight && kbHeight > 0) {
            this.setData({
                mystyle: `bottom: ${kbHeight-40}px;`
            })
        }
    }
})

demo

小程序input的一些坑点

点赞
收藏
评论区
推荐文章
LinMeng LinMeng
5年前
input 获取焦点,键盘遮挡页面
移动端开发中常遇到的就是键盘遮挡问题,下面提供项目中的写法:window.addEventListener('resize',(){constactiveElementdocument.activeElement;if(activeElement.tagName'INPUT'||activeElement.t
LinMeng LinMeng
5年前
解决ios软键盘收回时屏幕空白问题
添加事件:window.scrollTo(x,y)在input的释焦事件中添加blur事件,参数X要在窗口文档显示区左上角显示的文档的x坐标。参数y要在窗口文档显示区左上角显示的文档的y坐标。添加jQuery插件mounted(){//解决ios软键盘弹出屏幕空白$("input,select,te
Stella981 Stella981
4年前
PHP导入导出EXCELl,CSV
PHP导入导出Excel,CSVHTML<formaction"{:U('Admin/Unit/importcsv')}"method"post"name"myform"id"myform"enctype"multipart/formdata"<input
Stella981 Stella981
4年前
ReactNative遇到的坑总结(持续更新)
问题:在Android中input组件,文字会有遮挡在Android中,input组件默认会有内边距,所以把padding改为0可以解决问题问题:在Android中input组件,底部会有条白线添加红色的属性underlineColorAndroid<TextInputplaceholder"搜索关键字"
Stella981 Stella981
4年前
Angular组件交互
Angular2中的组件交互方式很多,可分为父子组件交互和非父子组件交互两种情况。在学习之前需要了解组件的@Input(https://my.oschina.net/InPuto)和@Output(https://my.oschina.net/output1314)的用法//子组件中内容@Input()绑定的属性名
Stella981 Stella981
4年前
Python中的raw_input()和input()
raw\_input()和input()都是python中的内建函数,用于读取控制台用户的输入,但有所区别:nr@localhostconf$pythonPython2.7.5(default,Aug4201
Stella981 Stella981
4年前
ELK学习笔记之配置logstash消费kafka多个topic并分别生成索引
0x00 filebeat配置多个topicfilebeat.prospectors:input_type:logencoding:GB2312fields_under_root:truefields:添加字段
Wesley13 Wesley13
4年前
HTML5的表单input元素的新属性
    知识点《HTML5的表单input元素的新属性》,留待学习分享。。。<!HTML5的表单input元素的新属性Autocomplete:自动完成功能Autofocus:自动获取焦点Form:所属表单Required:必填Pattern:验证input的模式placeholder:提示\
Stella981 Stella981
4年前
JavaScript获取Input输入框的屏幕绝对位置
需求:使用JavaScript,在input输入框被点击时获取input坐标的绝对位置,原理:根据js中的元素offsetLeft、offsetTop获取相对于父元素的X、Y坐标相对位置,然后遍历到最顶层的body元素,逐步叠加距离,最终获取的位置即为input的绝对位置。代码如下://获取x坐标functiongetXPo
可莉 可莉
4年前
18 个 JavaScript 入门技巧!(含2020JavaScript面试题整理)
1\.转字符串constinput123;console.log(input'');//'123'console.log(String(input));//'123'console.log(input.toString());//'123'
Stella981 Stella981
4年前
Javascript权威指南——第一章Javascript概述
示例:javascript贷款计算器  相关技术:    1、如何在文档中查找元素;    2、如何通过表单input元素来获取用户的输入数据;    3、如何通过文档元素来设置HTML内容;    4、如何将数据存储在浏览器中;    5、如何使用脚本发起HTTP请求;    6、如何利用<canvas元素绘图。!(h
单聘仁
单聘仁
Lv1
塞花飘客泪,边柳挂乡愁。
文章
3
粉丝
0
获赞
0