-
如何在HTML中限制input 输入框只能输入纯数字
2018-02-27 15:23:29在输入框输入任何非数字内容,都会自动退格并清除! 核心代码: onKeyUp=”value=value.replace(/[^\d]/g,”)” 示例代码 <!DOCTYPE html> <html lang="en&...限制
input
输入框只能输入纯数字1、onkeyup = "value=value.replace(/[^\d]/g,'')"
使用
onkeyup
事件,有bug
,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母2、onchange = "value=value.replace(/[^\d]/g,'')"
使用
onchange
事件,在输入内容后,只有input
丧失焦点时才会得到结果,并不能在输入时就做出响应3、oninput = "value=value.replace(/[^\d]/g,'')"
使用
oninput
事件,完美的解决了以上两种问题,测试暂时还没有出现其它问题。代码示例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>input</title> </head> <body> 只能输入纯数字的输入框:<input type="text" name="" oninput="value=value.replace(/[^\d]/g,'')"> </body> </html>
以上代码均已在谷歌、火狐、百度、UC、IE11、360急速、QQ、Edge浏览器下测试完毕,请放心使用,
感谢
qq_38726717
、小小小欣
两位小伙伴在评论区的反馈。 -
element input输入框自动获取焦点
2019-10-25 14:25:40最近项目中在做表单的时候,需要自动滚动到评论框,并且让评论框自动聚焦,这就需要手动触发输入框的 focus 状态。 但是,element并不支持autofocus属性,那就只能通过原生的js效果获取聚焦效果了 document....博客地址:http://www.globm.top/blog/1/detail/43
最近项目中在做表单的时候,需要自动滚动到评论框,并且让评论框自动聚焦,这就需要手动触发输入框的 focus 状态。但是,element并不支持autofocus属性,那就只能通过原生的js效果获取聚焦效果了
document.getElementById("input").focus();
或者利用vue的ref属性也可以实现聚焦效果:
原理其实很简单,Element 已经提供了 focus 方法,但是文档并没有写明如何去调用,下面是在el-input标签上加入ref属性,然后在需要的地方直接调用方法就可以了
<el-input v-model="input" placeholder="请输入内容" ref="input"></el-input>
this.$nextTick(() => { this.$refs.input.focus() })
注意:一个页面只能有一个聚焦效果
last , vue也支持自定义指令
当页面加载时,该元素将获得焦点 (注意:autofocus 在移动版 Safari 上不工作)。事实上,只要你在打开这个页面后还没点击过任何内容,这个输入框就应当还是处于聚焦状态。现在让我们用指令来实现这个功能:// 注册一个全局自定义指令 `v-focus` Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中时…… inserted: function (el) { // 聚焦元素 el.focus() // element-ui el.children[0].focus() // 元素有变化,如show或者父元素变化可以加延时或判断 setTimeout(_ => { el.children[0].focus() }) } })
参考:vue自定义指令 https://cn.vuejs.org/v2/guide/custom-directive.html
-
flutter 输入框组件TextField
2018-09-08 12:35:56顾名思义文本输入框,类似于Ios中的UITextField和Android中的EditText和Web中的TextInput。主要是为用户提供输入文本提供方便。相信大家在原生客户端上都用过这个功能,就不在做具体介绍了,接下来还是具体介绍下...TextField
顾名思义文本输入框,类似于iOS中的UITextField和Android中的EditText和Web中的TextInput。主要是为用户提供输入文本提供方便。相信大家在原生客户端上都用过这个功能,就不在做具体介绍了,接下来还是具体介绍下Flutter中TextField的用法。
以下内容已更新到 github
TextField的构造方法:
const TextField({ Key key, this.controller, //控制器,控制TextField文字 this.focusNode, this.decoration: const InputDecoration(), //输入器装饰 TextInputType keyboardType: TextInputType.text, //输入的类型 this.style, this.textAlign: TextAlign.start, this.autofocus: false, this.obscureText: false, //是否隐藏输入 this.autocorrect: true, this.maxLines: 1, this.maxLength, this.maxLengthEnforced: true, this.onChanged, //文字改变触发 this.onSubmitted, //文字提交触发(键盘按键) this.onEditingComplete, //当用户提交可编辑内容时调用 this.inputFormatters, this.enabled, this.cursorWidth = 2.0, this.cursorRadius, this.cursorColor, this.keyboardAppearance, })
先来试试最基本的TextField:
/* * Created by 李卓原 on 2018/9/7. * email: zhuoyuan93@gmail.com * */ import 'package:flutter/material.dart'; class TextFieldAndCheckPage extends StatefulWidget { @override State<StatefulWidget> createState() => TextFieldAndCheckPageState(); } class TextFieldAndCheckPageState extends State<TextFieldAndCheckPage> { @override Widget build(BuildContext context) { return Scaffold(appBar: AppBar( title: Text('输入和选择'), ),body:TextField(), ); } }
这是一个默认的输入框,我们什么都没有做的时候的样子.
然后我们试一下它的属性TextField( keyboardType: TextInputType.number, decoration: InputDecoration( contentPadding: EdgeInsets.all(10.0), icon: Icon(Icons.text_fields), labelText: '请输入你的姓名)', helperText: '请输入你的真实姓名', ), onChanged: _textFieldChanged, autofocus: false, ), void _textFieldChanged(String str) { print(str); }
我们增加一个keyboardType属性,把keyboardType设置为TextInputType.number
可以看到每次我们让TextField获得焦点的时候弹出的键盘就变成了数字优先了。
然后我们为输入框做一些其他的效果,如提示文字,icon、标签文字等。
我们给上面的代码新增decoration属性,设置相关属性,可以发现当我们的TextField获得焦点时,图标会自动变色,提示文字会自动上移。还可以看到 我加了一个
onChanged
。
onChanged
是每次输入框内每次文字变更触发的回调,onSubmitted
是用户提交而触发的回调。
每当用户改变输入框内的文字,都会在控制台输出现在的字符串.与onSubmitted
用法相同.接下来,我们实现一个简单的登录页面:
/* * Created by 李卓原 on 2018/9/7. * email: zhuoyuan93@gmail.com * */ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class TextFieldAndCheckPage extends StatefulWidget { @override State<StatefulWidget> createState() => TextFieldAndCheckPageState(); } class TextFieldAndCheckPageState extends State<TextFieldAndCheckPage> { //手机号的控制器 TextEditingController phoneController = TextEditingController(); //密码的控制器 TextEditingController passController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('输入和选择'), ), body: Column( children: <Widget>[ TextField( controller: phoneController, keyboardType: TextInputType.number, decoration: InputDecoration( contentPadding: EdgeInsets.all(10.0), icon: Icon(Icons.phone), labelText: '请输入你的用户名)', helperText: '请输入注册的手机号', ), autofocus: false, ), TextField( controller: passController, keyboardType: TextInputType.number, decoration: InputDecoration( contentPadding: EdgeInsets.all(10.0), icon: Icon(Icons.lock), labelText: '请输入密码)', ), obscureText: true), RaisedButton( onPressed: _login, child: Text('登录'), ), ], ), ); } void _login() { print({'phone': phoneController.text, 'password': passController.text}); if (phoneController.text.length != 11) { showDialog( context: context, builder: (context) => AlertDialog( title: Text('手机号码格式不对'), )); } else if (passController.text.length == 0) { showDialog( context: context, builder: (context) => AlertDialog( title: Text('请填写密码'), )); } else { showDialog( context: context, builder: (context) => AlertDialog( title: Text('登录成功'), )); phoneController.clear(); } } void onTextClear() { setState(() { phoneController.clear(); passController.clear(); }); } }
在布局上,我们使用一个Column包含了两个TextField和一个RaisedButton。
在逻辑上,每当我们点击下面的按钮都会判断用户名密码是否符合要求,并且使用控制器清空已经输入的用户名和密码。当用户输入的手机号码不是11位的时候提示手机号码格式错误,
当用户没有输入密码时,提示填写密码,
用户名和密码符合要求时提示登录成功。我这里登录成功之后还调了一个方法:
phoneController.clear()
清空了用户名输入框中的内容。代码的逻辑很简单。关于TextField的其他用法就不在一一介绍了,有兴趣的小伙伴可以自己尝试下.
使用decoration美化输入框
先看一下效果:
代码:
TextField( controller: accountController, decoration: InputDecoration( border: OutlineInputBorder(), hintText: '请输入账号', labelText: '左上角', prefixIcon: Icon(Icons.person), ), )
可以看到,我先添加了一个decoration属性.decoration属性介绍:
border:增加一个边框,
hintText:未输入文字时,输入框中的提示文字,
prefixIcon:输入框内侧左面的控件,
labelText:一个提示文字。输入框获取焦点/输入框有内容 会移动到左上角,否则在输入框内,labelTex的位置.
suffixIcon: 输入框内侧右面的图标.
icon : 输入框左侧添加个图标在多个输入框内切换焦点
介绍一下
onEditingComplete
这个方法:当用户提交可编辑内容时调用(例如,用户按下键盘上的“done”按钮)。
onEditingComplete
的默认实现根据情况执行2种不同的行为:- 当完成操作被按下时,例如“done”、“go”、“send”或“search”,用户的内容被提交给[controller],然后焦点被放弃。
- 当按下一个未完成操作(如“next”或“previous”)时,用户的内容被提交给[controller],但不会放弃焦点,因为开发人员可能希望立即将焦点转移到[onsubmit]中的另一个输入小部件。
我们有时候会需要这样的情况, 比如一个登录页面, 需要输入账号和密码 , 自然输入完账号就要输入密码了 , 我们在输入账号结束的时候 , 让密码输入框获取到焦点 .
看一下代码:
... FocusNode secondTextFieldNode = FocusNode(); ... Column( children: <Widget>[ TextField( /* onChanged: (text) { value = text; print(value); },*/ autofocus: false, //是否自动获取焦点 controller: _textController, decoration: InputDecoration( suffixIcon: Icon(Icons.chevron_right), //输入框内右侧图标 icon: Icon(Icons.person), //输入框左侧图标 prefixIcon: Icon(Icons.skip_previous), //输入框内左侧图标 labelText: 'labelText', hintText: 'hintText', helperText: 'helperText', ), onEditingComplete: () => FocusScope.of(context).requestFocus(secondTextFieldNode), ), TextField( focusNode: secondTextFieldNode, decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(horizontal: 15.0)), ), ], ),
我在顶层创建了一个交电接点并附加给第二个输入框,
在第一个输入框的onEditingComplete
方法中是用FocusScope.of(context).requestFocus(secondTextFieldNode),
方法来让第二个输入框请求获取焦点,
当然你也可以添加个按钮 , 点击按钮执行这个方法来实现切换焦点的功能.例如:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BjSYHYmc-1573730655449)(https://cdn-images-1.medium.com/max/800/1*vMJw-_qx5DjX7Q3NZ5TTbg.gif)]
代码很简单,我就不贴了.keyboardType
TextField成为焦点时显示的键盘类型。
TextField( keyboardType: TextInputType.number, ),
类型是:
- TextInputType.text(普通完整键盘)
- TextInputType.number(数字键盘)
- TextInputType.emailAddress(带有“@”的普通键盘)
- TextInputType.datetime(带有“/”和“:”的数字键盘)
- TextInputType.multiline(带有选项以启用有符号和十进制模式的数字键盘)
TextInputAction
更改TextField的textInputAction可以更改键盘本身的操作按钮。
TextField( textInputAction: TextInputAction.search, ),
这会导致“完成”按钮被“搜索”按钮替换:
TextCapitalization
TextField提供了一些有关如何使用户输入中的字母大写的选项。
-
TextCapitalization.sentences : 这是我们期望的正常类型的大写,每个句子的首字母大写。
-
TextCapitalization.characters:大写句子中的所有字符。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ykAhgu0-1573730655451)(https://cdn-images-1.medium.com/max/800/1*S-cw3fGmFsDasSaECpNnwQ.png)]
- TextCapitalization.words : 将每个单词的首字母大写。
更改TextField中的光标
可以直接从TextField小部件自定义游标。
可以更改角落的光标颜色,宽度和半径。
例如,这里我没有明显的原因制作一个圆形的红色光标。TextField( cursorColor: Colors.red, cursorRadius: Radius.circular(16.0), cursorWidth: 16.0, ),
控制TextField中的大小和最大长度
TextFields可以控制在其中写入的最大字符数,最大行数并在键入文本时展开。
TextField( maxLength: 4, ),
通过设置maxLength属性,将强制执行最大长度,并且默认情况下会将计数器添加到TextField。
-
怎么设定一个input输入框的长度?
2014-07-08 09:53:51我想知道怎么设定输入框的长度,比如<input type="text" value="1" /> 这个长度可能就 | 1 | 这么长 但是我想让我的这个输入框长一点 比如 | 1 | 该用什么来设定? -
Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框
2013-09-04 17:29:30Android 带清除功能的输入框控件ClearEditText,仿IOS的输入框 ,点击右侧清除图片清除输入框内容,项目详情http://blog.csdn.net/xiaanming/article/details/11066685 -
修改input输入框的样式
2016-08-08 10:51:02我们在写表单的时候,经常需要自定义表单的样式,当然input输入框也不例外,那么如何能写出好看一点的输入框呢? 下面我们来写个简单的表单 <form action="" method="get"> <div class="input_...我们在写表单的时候,经常需要自定义表单的样式,当然input输入框也不例外,那么如何能写出好看一点的输入框呢?
下面我们来写个简单的表单
<form action="" method="get"> <div class="input_control"> <input type="text" class="form_input" placeholder="Enter vendor key here"/> </div> <div class="input_control"> <input type="text" class="form_input" placeholder="Enter room name here"/> </div> <div class="input_control"> <input type="text" class="form_input" placeholder="Input key here if use encryption"/> </div> <div class="input_control"> <a id="btn1"><b></b>Join</a> </div> <div class="input_control"> <a id="btn2"><b></b>Video Options</a> </div> </form>
首先要将input输入框的默认样式去掉
-webkit-appearance:none; -moz-appearance: none;
然后我们加上边框和圆角,并设置input的高度和字体大小和颜色:
font-size:1.4em; height:2.7em; border-radius:4px; border:1px solid #c8cccf; color:#6a6f77;
然后将input输入框的轮廓去掉:
outline:0;
这样我们的输入框就差不多好了,input样式完整代码如下:
.input_control{ width:360px; margin:20px auto; } input[type="text"],#btn1,#btn2{ box-sizing: border-box; text-align:center; font-size:1.4em; height:2.7em; border-radius:4px; border:1px solid #c8cccf; color:#6a6f77; -web-kit-appearance:none; -moz-appearance: none; display:block; outline:0; padding:0 1em; text-decoration:none; width:100%; } input[type="text"]:focus{ border:1px solid #ff7496; }
效果如下图:
通过上图的input样式我们可以看出,虽然比默认样式好看了许多,但是还有一些问题,比如placeholder的默认字体颜色是灰色,看起来有点浅,我们继续修改样式,那么如何修改placeholder的样式呢?我们加上如下代码即可:
::-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #6a6f77; } ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #6a6f77; } input::-webkit-input-placeholder{ color: #6a6f77; }
修改之后样式如下图:
截图上input的边框有点虚,实际效果比这个好,这样就完成了一个简单漂亮的表单了。
-
android自动补全输入框
2019-02-14 14:32:35输入框,自动补全的输入框,android输入框自动补全输入框 输入框,自动补全的输入框,android输入框...输入框,自动补全的输入框,android输入框自动补全输入框输入框,自动补全的输入框,android输入框自动补全输入框 -
文本输入框、密码输入框
2017-11-01 20:14:41当用户要在表单中键入字母、数字等内容时,就会用到文本输入框。文本框也可以转化为密码输入框。语法: 名称" value="文本" /> </form>1、type:当type=”text”时,输入框为文本输入框;当type=”password”时, ... -
输入框【普通输入框,邮箱输入框,验证码输入框,手机号码输入框】的测试用例规范
2020-04-25 23:24:08普通输入框字段校验测试 1.不输入,空内容 2.输入1个字符 3.若输入框有长度限制为N个字符,测试N-1个字符,N个字符,N+1个字符,N+N+...(超长)这几个边界值 4.还需要测试下通过复制大于长度的值粘贴进去看是否... -
iview实现A输入框输入B输入框清空,B输入框输入A输入框清空
2019-10-09 05:54:53一、代码: (1)A输入框 1 <span class="filterBlock"> 2 证卡号码: 3 <Input class="filter" 4 v-model.lazy="cardNumber" 5 placeholder="请输入" 6 ... -
react 获取input 输入框的值
2018-08-03 11:11:27react 获取input 输入框的值 第一种方式 非受控组件获取 第二种方式 受控组件获取 非受控组件获取 ref import React , {Component} from 'react'; export default class App extends Component{ search(){ ... -
多个输入框时怎么控制当我当前输入框底部还有输入框的时候键盘不隐藏
2018-12-10 10:10:17各位大佬,react-native中,在安卓中使用输入框时,请问我一个页面有多个输入框的时候,当我点击第一个输入框的时候,会弹出键盘,然后我去再输入第二个输入框的时候键盘会先下去,点击之后再上来,这个还怎么控制当我... -
CSS:输入框input光标距离输入框左边间距设置
2020-04-25 22:23:30html输入框input光标距离输入框左边间距设置 -
如何实现input输入框自带清除按钮
2018-01-08 14:20:14最近,项目中需要,在输入框获取焦点是动态显示“×”图标。即在输入框中输入内容时,右边显示“×”按钮;输入框为空时,“×”按钮消失。难点在于获取焦点的同时,获取输入内容。注意:本例子的样式基于bootstrap.... -
lua输入框
2018-03-24 15:38:53----------panel是添加输入框的容器 local size = panel:getContentSize()--根据容器的大小创建输入框 --点九缩放输入框大小 local editBox = ccui.EditBox:create(size, ccui.Scale9Sprite:create()) --设置位置... -
js获取input输入框的值
2019-05-22 16:19:51代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="Content-Language" content="zh-cn" />...输入框</title> </head&g... -
input输入框长度
2019-04-24 15:44:19input输入框长度 -
iOS仿微信聊天输入框、评论输入框
2019-12-13 17:32:11最近项目有需求,需要实现一个类似微信聊天输入框的组件,用在全平台的评论功能中。大概需求就是输入的文字占满一行时,自动折行并且增大输入框的高,输入框的高有默认的最大值。在此,记录一下遇到的问题。 1、... -
Android 验证码和密码输入框,能自定义输入框个数和样式(连体,下划线和方形框) 类似微信支付宝的密码...
2020-04-17 11:23:39简介: Android 验证码和密码输入框,能自定义输入框个数和样式(连体,下划线和方形框) 类似微信支付宝的密码输入框等 更多:作者提 Bug 标签: Android 验证码和密码输入框,能自定义输入框个数和样式(连体... -
HTML的文本输入框、密码输入框
2015-10-10 11:54:15当用户要在表单中键入字母、数字等内容时,就会用到文本输入框。文本框也可以转化为密码输入框。 语法: 1、type: 当type="text"时,输入框为文本输入框; 当type="password"时, 输入框为密码输入框。 ... -
JavaScript输入框
2018-09-25 20:17:32各种输入框,不懂的可以留言 <input type="text" id="username"> //用户名 <input type="password" id="pwd"> //密码框 <... -
pyqt各种输入框inputbox
2018-12-20 19:07:59pyqt各种输入框inputbox:包括密码输入、数字数入,combobox输入,多行输入 -
Bootstrap创建输入框组
2019-05-16 14:28:11输入框组 输入框组是对表单控件的扩展。使用输入框组,你可以很容易地在文本输入框<input>的前面或后面添加文本或按钮。 通过输入框组,你可以向输入框添加公共的元素。如,添加人民币符号、电子邮件的 @ ... -
Android 密码输入框
2017-11-06 15:55:49好久没写blog了,今天抽空写一个Android里面都能用到的自定义控件,密码输入框。简单介绍一下这个密码输入框的样子吧,当软键盘弹出在输入适合,会有删除的图标显示,点击删除会清空Edittext,后面也会有个眼睛的... -
前面输入框的内容自动为下面输入框自动充填
2019-11-17 12:40:59当上面的一个输入框充填了内容,下面的输入框自动充填上上面输入框的内容,比如:一个输入框要上传图片,选择图片之后此输入框的内容显示的是图片名称,此图片名称要自动充填到下面的一个输入框中,代码如下: ...
-
27 while循环.mp4
-
[硕士论文精品]基于FPGA的CPU核及其虚拟平台的设计与实现.pdf
-
微服务系列第七十一季-Introducing Spring Boot
-
多物理场仿真基础强化培训(COMSOL)
-
2021全网最详细【WEB前端】从零入门实战教程,全课程119节
-
微信支付2021系列之扫码支付一学就会java版
-
datax(11):源码解读 ContainerCommunicator
-
Linux 学习记录(三)
-
题注自动带章节编号 and怎样删除Word题注标签和编号间的空格?
-
FFmpeg4.3系列之26:视频监控之H265多路摄像头播控项目实战
-
15、JDK 8 之前的时间 API
-
Laya 2.0 开发3D小游戏 入门教学
-
C/C++编程全家桶(Daozy极限编程)
-
转行做IT-第1章 计算机基础
-
Edward M. Purcell - Electricity and Magnetism libgen.lc.djvu
-
2021最新Kubernetes(k8s)集群实战精讲
-
计算机网络基础
-
Soul网关源码分析-7期(番外)
-
瞄准核燃料和量子计算,澳大利亚将成为生产零自旋硅的领导者?
-
C#文件传输、Socket通信、大文件断点续传