- 浏览: 404018 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
qiuqinjun:
你好,项目的文献能否打包学习下呢
java定时任务管理实现 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
使用jQuery Autocomplete(自动完成)插件 -
CommonAccount:
我的showModalDialog() 传对象参数,在子窗口用 ...
JS中showModalDialog (模态窗口)详细使用 -
wyfn18:
very good
使用jQuery Autocomplete(自动完成)插件 -
jiangqingtian:
xiexie
使用jQuery Autocomplete(自动完成)插件
之前做一个云计算的项目,涉及到一个安全组自动联想的功能,思想是这样的:
安全组规则之间是可以相互引用的,也可以自己是自己手动输入的ip/mask,这时候可以加一个功能,实现securityGroupId和securityGroupName以及ip/mask之间随意的联想输入。
主要实现方式是:后台处理securityGroupName和SecurityGroupName的组合列表,并且在前台做相应的处理,处理为数组对象,此时对名称和id的联想基本实现,如果再加上ip/task,只需做一些处理,创建一个新数组,拼接到之前的name和id的数组上,这时候就实现了securityGroupId和securityGroupName以及ip/mask之间随意的联想输入。
主要实现方式是:后台处理securityGroupName和SecurityGroupName的组合列表,并且在前台做相应的处理,处理为数组对象,此时对名称和id的联想基本实现,如果再加上ip/task,只需做一些处理,创建一个新数组,拼接到之前的name和id的数组上,这时候就实现了securityGroupId和securityGroupName以及ip/mask之间随意的联想输入。
以下主要是实现ip/mask的转换,涉及一个最小掩码的算法,比如当前ip是10.12.0.0,这个时候需要计算出最小掩码,算法是:将该ip分段处理,如果第一个数不为0(,此处单纯的理解为10进制,也可以处理成2进制数之后相应的判断),那么查看后一位是否为0,这里以第二位为例(12)。因为第一位10后面的数(12)不为零,第二位12的后面的数(0)为零,则对12处理。12处理成2进制数为:00001100,掩码可最后一个1的位置有关,此时得出的数是6,那么第一位后面不为0,则第一位取全掩8,此时得出的值为8+6=14,也就是说该ip最后取出的最小掩码为14,还有三个是固定的,大家都会(14,16,24,34),如果不是以此往下类推。
/** * IP自动联想 * * @param input IP * @return IP/Task */ function getIpArray(input){ var ipArray = input.split('.'); for( var i = 0; i < 4; i++){ if (ipArray[i] == undefined || ipArray[i] == ''){ ipArray[i] = 0; } // // if(ipArray[i].indexOf('0') == 0 && ipArray[i].length > 1){ // ipArray[i] = ipArray[i].substring(1, ipArray[i].length); // } } return ipArray; } function every(arr, func){ var aa = []; for( var i = 0; i < arr.length; i++){ aa.push(func(arr[i])); } return aa; } function indexOfEnd(str){ for( var i = str.length - 1; i >= 0; i--){ if (str.charAt(i) == '1') { return 8 - (str.length - i) + 1; } } return 0; } function getPermissions(input){ var ipArray = getIpArray(input); var ip = ipArray.join('.'); var binaryIpArray = every(ipArray, function(oct){ return Number(oct).toString(2); }); var yanma = 0; for( var i = binaryIpArray.length - 1; i >= 0; i--){ if(binaryIpArray[i] != 0){ yanma = indexOfEnd(binaryIpArray[i]) + i * 8; break; } } var abc = [ 8, 16, 24, 32 ]; var rstArray = [ ip + '/' + yanma ]; for( var i = 0; i < abc.length; i++){ if(abc[i] > yanma){ rstArray.push(ip + '/' + abc[i]); } } return rstArray; }
这里主要是在键盘事件触发的时候的一个脚本,实现自动联想
/** * 创建安全组自动联想DOM */ function createSgDom(input){ var arrayObj = new Array(); var ary = new Array(); this.setNewAry([]); this.setAry([]); var autoData = jsonData.substring(1, jsonData.length -1).split(', '); for ( var element in autoData) { arrayObj.push(autoData[element]); } var permissions = /^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))$/; var ip_1 = /^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))[\.]?){1,3})$/; var str = /^[a-zA-Z]*([a-zA-Z]|[-])*$/; if(null != input && !str.test(input)){ if(ip_1.test(input) || permissions.test(input)){ var except = false; if(input.indexOf('.') > -1){ var value = input.split('.'); for(var val in value){ var inVal = value[val]; if(inVal.indexOf('0') == 0 && inVal.length > 1){ except = true; } if(inVal>255){ except = true; } } } else { if(input>255){ except = true; } } if(!except){ var ips = getPermissions(input); for(var ip in ips){ ary.push(ips[ip]); } } } } if(ary != null){ newAry = arrayObj.concat(ary); } else { newAry = arrayObj; } this.setNewAry(newAry); $('#suggest_value').autocomplete({ source: this.getNewAry(), minLength: 0, close: function(event, ui){ }, focus: function(event, ui){ return false; }, change: function(event, ui){ }, select: function(event, ui){ if(ui.item.label.indexOf('(') > -1 && ui.item.label.indexOf(')') > -1){ ui.item.value = ui.item.label.substring(0, ui.item.label.indexOf('(')); }else{ ui.item.value = ui.item.label.substring(0, ui.item.label.length); } } }); }
最后:
//在输入框加上一个keyup事件,指定执行脚本:createSgDom($('#suggest_value').val()); // 引入自动联想插件和上面处理ip掩码的脚本 <script type="text/javascript" src="theme/default/js/cbms/ip-permissions.js"></script> <%-- <script src="theme/default/jquery-ui/js/jquery-1.8.3.js" type="text/javascript"></script> --%> <script src="theme/default/jquery-ui/js/jquery-ui-1.8.24.custom.min.js" type="text/javascript"></script>
请支持原创,欢迎纠错,若转载,请注明出处。
发表评论
-
jQuery实现Session过期提示
2013-06-24 15:46 10707起初项目中session过期的时候需要做一个提示框(并不进 ... -
页面所有元素加载完成之后执行某个js函数
2013-06-08 12:35 96063在页面所有元素加载完成之后执行某个js函数 做项目 ... -
在页面加载完后执行javascript代码
2013-06-04 15:54 0在页面加载完后执行javascript代码 ... -
基于jQuery的waterfall(瀑布流)布局
2013-05-21 15:44 5157<!DOCTYPE html> < ... -
如何提高你的jQuery代码技巧
2013-05-17 21:37 0Query之所以如此流行并被从大公司到个人博客的几乎每个人都 ... -
使用jQuery去掉指定标签里所有文字内容对应的链接
2013-05-21 15:43 1254有时候需要使用jQuery来去除指定的某些标签,例如,删除所有 ... -
Jquery的UI库 w2ui
2013-05-10 16:52 5140很不错的Jquery的UI库 w2ui,基于Jquery的 ... -
Javascript动态生成table的性能调优
2013-05-08 10:08 0客户端动态输出table数 ... -
经典的回到页面顶端
2013-04-25 13:54 1819经典的回到页面顶端,当页面滚动到一定的高度时,给一个回到顶 ... -
js 验证各种格式类型的正则表达式
2013-01-31 14:59 0<script src="scripts/ ... -
amCharts目前最牛逼的图表插件
2012-12-05 23:40 0amCharts,图表插件,目前最牛的图表插件 -
判断几种浏览器类型的表达式
2012-12-03 14:11 1053// IE浏览器 if (/MSIE/.test(n ... -
js获取工程路径以及js调用Servlet
2012-10-18 21:19 0function getRootPath(){ va ... -
jQuery jqplot chart plugins
2012-09-28 00:31 0Charts on this page may depe ... -
jQuery tip plugins
2012-09-25 00:35 01. 一款jQuery提示插件 2. 以下为一个java ... -
使用jQuery Autocomplete(自动完成)插件
2012-09-18 01:25 26433jQuery 的Autocomplete(自动完成、自动 ... -
动态创建js,jQuery
2012-09-18 00:53 0function checkJquery() { ... -
jQuery ajax - getJSON() 方法
2012-09-17 22:41 0<html> <head> ... -
仿IBM导航条实现
2012-09-16 22:57 0<!DOCTYPE html PUBLIC " ... -
jQuery-1.8-Api-中文版,ATF搭建,DOJO,jChart,autoSize
2012-09-21 01:32 22621,jQuery Api1.8中文帮助文档 2,js+ ...
相关推荐
很多示例我都下载看了,要么复杂,要么就实现不了。我这个示例是自己亲手写的。新建一个eslipse项目,...示例包括jquery通过ajax获取selvert类中转换的json数据和javascript通过ajax获取selvert类中转换的json数据。
【标题】"基于jQuery/JS的简易网页计算器"揭示了这个项目的核心——使用JavaScript和jQuery技术来实现一个基本的在线计算功能。JavaScript是一种在客户端浏览器上运行的脚本语言,常用于网页交互和动态效果的实现,...
用Jquery 添加删除行, 并进行计算 品名 数量 单价 金额(计算得出) 添加(按钮) 品名 数量 单价 金额(计算得出) 删除(按钮) .... --- 总计:
jQuery文本框联想补全自动完成插件是一款非常实用的前端开发工具,它可以帮助开发者在网页的输入框中实现智能联想和自动补全功能。这个插件基于JavaScript库jQuery构建,因此,使用它之前需要确保项目中已经引入了...
<script type="text/javascript" src="${request.contextPath}/js/common/plug/jquery/jquery.js"></script> <script type="text/javascript" src="${request.contextPath}/js/common/plug/jquery/jquery....
在JavaScript和jQuery的世界里,实现元素的拖拽(Draggable)和吸附(Docking)功能是一项常见的需求,尤其是在创建交互式用户界面时。本篇将深入讲解如何利用这两种技术来增强网页的动态性和用户体验。 首先,...
接下来,为需要实现自动匹配提示功能的 input 表单元素添加 AutoComplete 功能。示例代码如下: ```html <input id="query" name="q" /> ``` 然后通过 jQuery 初始化 AutoComplete 对象,需要注意的是,在初始化...
总的来说,jQuery实现自动补全功能是一个实用且常见的话题,它涉及到DOM操作、事件监听、Ajax请求以及数据处理等多个JavaScript和jQuery的核心概念。通过学习和实践,开发者能够提升用户界面的交互性和可用性,增强...
<script src="/jquery/echarts-4.2.1.min.js"></script> <script type="text/javascript" src="js/echarts-gl.min.js"></script> <script language="JavaScript" src="js/echarts-tool.js"></script> ...
javascript实现右下角提示框,支持最小化...<script src="/js/jquery/jquery.js" type="text/javascript"></script> <script type="text/javascript"> //解决代码符号冲突问题 var $j = jQuery.noConflict(); </script>
为此,开发者常常借助JavaScript库,如jQuery,来实现这样的功能。"JQuery插件 IP地址输入框"就是为了解决这个问题而设计的,它允许用户在输入框中便捷地输入IP地址,并能自动进行格式化和有效性检查。 该插件特别...
通过封装常见的DOM操作、事件处理、动画效果和Ajax交互等,jQuery让开发者用更少的代码实现更多的功能。在2.1.1这个版本中,它保持了这一特点,并进行了优化,提高了性能和兼容性。 jQuery的引入通常有两种形式:未...
本书浓墨重彩地描述iQuery的API及iQuery框架的所有基础知识,在实例引导下演示如倒使用iQuery架以超越纯JavaScrjpt的速度实现更多功能,以及如何使用最少代码完成繁琐任务。本书还介绍jQuery UI库的用法,指导您使用...
《jQuery 3.5.1:JavaScript开发者的得力助手》 jQuery,作为一款广泛使用的JavaScript库,一直以来都是Web开发者的首选工具。标题中的“jquery-3.5.1.min.js”代表的是jQuery库的3.5.1版本的压缩后的最小化文件,...
jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave ...
javascript实现右下角提示框,支持最小化...<script src="/js/jquery/jquery.js" type="text/javascript"></script> <script type="text/javascript"> //解决代码符号冲突问题 var $j = jQuery.noConflict(); </script>
<script type="text/javascript" src="${ctx}/plugins/jquery-ui-1.11.2/external/jquery/jquery.js"></script> <script type="text/javascript" src="${ctx}/plugins/jquery-ui-1.11.2/jquery-ui.js"></script> ...
**jQuery自动联想插件**是一种常用的前端开发工具,主要用于实现输入框内的自动提示和联想功能。这个插件基于JavaScript库jQuery,它简化了在网页上创建动态、交互式搜索或输入体验的过程。在标题中提到的插件带有...
它的API设计易于理解和使用,使得开发者能够用更少的代码实现更多的功能,提高了开发效率。 2. **jQuery 1.11.1 版本** jQuery 1.11.1是在2014年发布的一个稳定版本,它修复了之前版本的一些已知问题,增强了兼容...
jQuery实现的自动补全功能利用了事件监听、AJAX异步请求和DOM操作,为用户提供实时的搜索建议。通过理解这一过程,开发者可以灵活地定制自己的自动补全功能,提高网站的交互性和可用性。记住,良好的用户体验往往...