分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

用Jquery控制文本框只能输入数字和字母

发布时间:2023-09-06 01:13责任编辑:彭小芳关键词:暂无标签

用Jquery控制文本框只能输入数字和字母

  在公司开发WinForm项目时,发现公司自主研发的textbox控件非常强大,可以实现"只能输入数字"、"只能输入字母"和"只能输入数字和字母"的三种输入限制,这样就可以精确控制用户输入的内容范围,让"用户永远没有办法输入限定的内容范围之外的其他内容",也就是"用户即使想犯错误也没有机会",这种限制控件输入的方式给了我很大的启发,如果在web项目中也能做到这样的精确控制,那么就可以避免因为一些非法输入而造成系统出错,既然WinForm里面可以实现这样的控件,那么web项目里面也应该有办法去实现类似这样的控件或者能够做到类似的效果,经过自己的一番研究和查找资料,终于做到了类似的效果,针对"只能输入数字"、"只能输入字母"和"只能输入数字和字母"的三种输入限制,我封装成onlyNum(),onlyAlpha()和onlyNumAlpha()3个Jquery扩展方法,方便复用,由于里面一些JS代码涉及到了"禁用输入法,获取剪切板的内容",而"禁用输入法,获取剪切板的内容"只能在IE浏览器下才有效,对于别的浏览器是无效的,因此这三个方法只适合在IE浏览器下使用才有效,三个方法的代码如下

一、限制只能输入数字

 1 // ---------------------------------------------------------------------- 2 // <summary> 3 // 限制只能输入数字 4 // </summary> 5 // ---------------------------------------------------------------------- 6 $.fn.onlyNum = function () { 7 ????$(this).keypress(function (event) { 8 ????????var eventObj = event || e; 9 ????????var keyCode = eventObj.keyCode || eventObj.which;10 ????????if ((keyCode >= 48 && keyCode <= 57))11 ????????????return true;12 ????????else13 ????????????return false;14 ????}).focus(function () {15 ????//禁用输入法16 ????????this.style.imeMode = ‘disabled‘;17 ????}).bind("paste", function () {18 ????//获取剪切板的内容19 ????????var clipboard = window.clipboardData.getData("Text");20 ????????if (/^\d+$/.test(clipboard))21 ????????????return true;22 ????????else23 ????????????return false;24 ????});25 };

二、限制只能输入字母

 1 // ---------------------------------------------------------------------- 2 // <summary> 3 // 限制只能输入字母 4 // </summary> 5 // ---------------------------------------------------------------------- 6 $.fn.onlyAlpha = function () { 7 ????$(this).keypress(function (event) { 8 ????????var eventObj = event || e; 9 ????????var keyCode = eventObj.keyCode || eventObj.which;10 ????????if ((keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122))11 ????????????return true;12 ????????else13 ????????????return false;14 ????}).focus(function () {15 ????????this.style.imeMode = ‘disabled‘;16 ????}).bind("paste", function () {17 ????????var clipboard = window.clipboardData.getData("Text");18 ????????if (/^[a-zA-Z]+$/.test(clipboard))19 ????????????return true;20 ????????else21 ????????????return false;22 ????});23 };

 三、 限制只能输入数字和字母

 1 // ---------------------------------------------------------------------- 2 // <summary> 3 // 限制只能输入数字和字母 4 // </summary> 5 // ---------------------------------------------------------------------- 6 $.fn.onlyNumAlpha = function () { 7 ????$(this).keypress(function (event) { 8 ????????var eventObj = event || e; 9 ????????var keyCode = eventObj.keyCode || eventObj.which;10 ????????if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122))11 ????????????return true;12 ????????else13 ????????????return false;14 ????}).focus(function () {15 ????????this.style.imeMode = ‘disabled‘;16 ????}).bind("paste", function () {17 ????????var clipboard = window.clipboardData.getData("Text");18 ????????if (/^(\d|[a-zA-Z])+$/.test(clipboard))19 ????????????return true;20 ????????else21 ????????????return false;22 ????});23 };

使用方法:首先在画面加载完成之后编写如下的JS脚本

1 $(function () {2 ????// 限制使用了onlyNum类样式的控件只能输入数字3 ????$(".onlyNum").onlyNum();4 ????//限制使用了onlyAlpha类样式的控件只能输入字母5 ????$(".onlyAlpha").onlyAlpha();6 ????// 限制使用了onlyNumAlpha类样式的控件只能输入数字和字母7 ????$(".onlyNumAlpha").onlyNumAlpha();8 ???});

对需要做输入控制的控件设置class样式

1 ?<ul>2 ????????<li>只能输入数字:<input type="text" class="onlyNum" /></li>3 ????????<li>只能输入字母:<input type="text" class="onlyAlpha" /></li>4 ????????<li>只能输入数字和字母:<input type="text" class="onlyNumAlpha" /></li>5 ?</ul>

这样画面上凡是设置了class="onlyNum"的控件就只能输入数字,设置了class="onlyAlpha"的控件只能输入字母,设置了class="onlyNumAlpha"的控件只能输入数字和字母,通过这种方式就可以限制了用户的输入范围,避免用户进行一些非法的输入。

用Jquery控制文本框只能输入数字和字母

原文地址:http://www.cnblogs.com/TigerZhang-home/p/7573126.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved