在工作中需要用一些IP控件,就自己照着写了一个简单的雏形,下面是源码,请有兴趣的各位帮忙完善指正
1、JQuery代码
(function($) { $.fn.ipinput = function(options) { // 默认属性 var defaults = { // 长度最低支持110像素 width : 110, // 高度默认20像素 height : 20, // 在键盘按下时用来存储未输入前的值 currValue : '', // 原有值,就是从数据库中读取到的值 value : '' } // 传递的参数 var options = $.extend(defaults, options); // 输入框对象及父级对象 var $this = $(this); var $parent = $this.parent(); // 隐藏输入框(该输入框用于存储实际值) $this.attr({style : 'display:none'}); // 输入控件代码 var html = ''; html += '<div class="ipinput_div">'; html += '<input type="text" id="ipOne" class="ipinput_input"/>'; html += '<span class="ipinput_separator">.</span>'; html += '<input type="text" id="ipTwo" class="ipinput_input"/>'; html += '<span class="ipinput_separator">.</span>'; html += '<input type="text" id="ipThree" class="ipinput_input"/>'; html += '<span class="ipinput_separator">.</span>'; html += '<input type="text" id="ipFour" class="ipinput_input"/>'; html += '</div>'; // 添加输入控件代码 $parent.append(html); // 把原有的值赋到输入框中 if(!isEmpty(options.value)) { var valArr = options.value.split("."); if(4 == valArr.length) { $('#ipOne').val(valArr[0]); $('#ipTwo').val(valArr[1]); $('#ipThree').val(valArr[2]); $('#ipFour').val(valArr[3]); } } // 设置宽度和高度 $('.ipinput_div').width(options.width); $('.ipinput_div').height(options.height); alert($('input', $('.ipinput_div'))); // 输入框绑定键盘按下事件 $('.ipinput_input').keydown(function(event) { keydown(event); }); // 输入框绑定键盘按下弹起事件 $('.ipinput_input').keyup(function(event) { keyup(event); }); // 输入框失去焦点事件 $('.ipinput_input').blur(function() { setData($this); }); }; // 判断参数是否为空 var isEmpty = function(obj) { if(null == obj) { return true; } else if(undefined == obj) { return true; } else if("" == obj) { return true; } else { return false; } }; // 赋值给隐藏框 var setData = function(inputObj) { // 四个框的值 var one = $('#ipOne').val(); var two = $('#ipTwo').val(); var three = $('#ipThree').val(); var four = $('#ipFour').val(); // 如果四个框都有值则赋值给隐藏框 if(!isEmpty(one) && !isEmpty(two) && !isEmpty(three) && !isEmpty(four)) { var ip = one + "." + two + "." + three + "." + four; inputObj.val(ip); } } // 键盘按下事件 var keydown = function(event) { // 当前输入的键盘值 var code = event.keyCode; // 除了数字键、删除键、小数点之外全部不允许输入 if((code < 48 && 8 != code && 37 != code && 39 != code) || (code > 57 && code < 96) || (code > 105 && 110 != code && 190 != code)) { return false; } // 先存储输入前的值,用于键盘弹起时判断值是否正确 options.currValue = $(this).val(); // 110、190代表键盘上的两个点 if(110 == code || 190 == code) { // 当前输入框的ID var id = $(this).attr("id"); // 当前输入框的值 var value = $(this).val(); // 如果是第一个框则第二个框获的焦点 if("ipOne" == id && !isEmpty(value)) { $('#ipTwo').focus(); return false; } // 如果是第二个框则第三个框获的焦点 else if("ipTwo" == id && !isEmpty(value)) { $('#ipThree').focus(); return false; } // 如果是第三个框则第四个框获的焦点 else if("ipThree" == id && !isEmpty(value)) { $('#ipFour').focus(); return false; } // 如果是第四个框则直接返回 else if("ipFour" == id) { return false; } else if(isEmpty(value)) { return false; } } } // 键盘弹起事件 var keyup = function(event) { // 当前值 var value = $(this).val(); if(!isEmpty(value)) { value = parseInt(value); if(value > 255) { $(this).val(options.currValue) } else if(value > 99) { // 当前输入框的ID var id = $(this).attr("id"); // 如果是第一个框则第二个框获的焦点 if("ipOne" == id && !isEmpty(value)) { $('#ipTwo').focus(); } // 如果是第二个框则第三个框获的焦点 else if("ipTwo" == id && !isEmpty(value)) { $('#ipThree').focus(); } // 如果是第三个框则第四个框获的焦点 else if("ipThree" == id && !isEmpty(value)) { $('#ipFour').focus(); } } } } })(jQuery);
2、CSS代码
.ipinput_input { border-color : #b99d7f; border-style : solid; border-width : 0px; background-color : #ffffff; margin-right : -5px; margin-left : 0px; margin-top : 0px; margin-bottom : 0px; width : 22%; height : 90%; } .ipinput_separator { margin-right : 2px; margin-left : 2px; font-weight : bolder; font-size : 14px; } .ipinput_div { border-color : #86A3C4; border-style : solid; border-width : 1px; }
3、HTML代码
<input name="aucIpAddr" type="text" style="width:200px"/>
4、JS代码
$('input[name=aucIpAddr]').ipinput( { width : 201, height : 20, value : "192.168.1.2" });
5、HTML页面引用
<link rel="stylesheet" type="text/css" href="../../css/ipinput.css"/> <script type="text/javascript" src="../../script/jquery.min.js"></script> <script type="text/javascript" src="../../script/ipinput.js"></script>
注:附件是另外一种自定义控件的方式,有兴趣可以使用这个方式再写一遍
相关推荐
总之,"JQuery插件 IP地址输入框"提供了一个方便的解决方案,用于在网页上创建用户友好的IP地址输入控件,尽管在IE浏览器下可能存在一些挑战,但通过适当的优化和调整,可以克服这些限制,实现全平台的良好体验。
在本例中,我们关注的是一个名为"IpBoxControl"的自定义控件,它专为输入IP地址和MAC地址设计。这个控件的创建者从网络上获取了源代码,并对其进行修改以适应实际使用场景。 IP地址(Internet Protocol Address)是...
在IT领域,尤其是在开发涉及网络配置或管理的软件时,"使用IP地址控件显示和设置IP地址"是一个常见的需求。IP地址控件是用户界面(UI)设计中的一种元素,它允许用户方便地输入、查看和修改IPv4或IPv6地址。下面将...
在压缩包文件名称“jQueryIP输入框控件”中,我们可以推测包含的是该jQuery插件的所有源文件,可能包括JavaScript文件(如jquery.ipinput.js)、CSS样式文件(如jquery.ipinput.css)以及示例或者测试页面(如index....
在IT行业中,开发人员经常需要处理用户输入的IP地址,为了提供良好的用户体验并确保数据的准确性,使用专门的IP输入控件是必要的。`IPAddressTextBox`控件在C#环境中就是一个这样的工具,它专为输入IPv4或IPv6地址而...
本人使用的还是 jQuery 框架,因为这样简短的代码可能会更容易理解。 当然这个控件还有很多需要完成的地方,我仅仅是提供了一种遵循 Web 标准的实现思路。废话不多说. Javascript Progress Bar Demo – jb51...
一直苦于没有好的国籍控件可以用,于是抽空写了一个国籍控件,现分享给大家。 主要功能和界面介绍 国籍控件主要支持中文、英文过滤以及键盘上下事件。 源码介绍 国籍控件核心是两个文件,navtionality.js 和 mian....
超实用的jQuery代码段精选近350个jQuery代码段,涵盖页面开发中绝大多数要点、技巧与方法,堪称史上最实用的jQuery代码参考书,可以视为网页设计与网站建设人员的好帮手。《超实用的jQuery代码段》的代码跨平台、跨...
本文将深入探讨如何创建一个自定义文本框控件,该控件集成了日期选择、电话格式验证、IP地址输入以及焦点事件处理等多种功能。 首先,自定义文本框控件通常通过继承自ASP.NET的基础控件`System.Web.UI.WebControls....
Jquery zTree是一个基于JQuery实现的...最后,文章提到的《jQuery插件ztree使用汇总》专题中应该包含了更多关于ztree控件的使用方法、技巧和案例分析,这对于需要深入了解zTree应用的开发者来说是一个宝贵的学习资源。
请添加一个名为 jquery (区分大小写)的 ScriptResource”。这个问题通常出现在尝试使用ASP.NET内置的无侵入式验证(Unobtrusive Validation)时,由于系统找不到jQuery库的引用,因此导致验证功能无法正常工作。下面...
这通常通过JavaScript或jQuery实现,因为这些技术可以在客户端运行,更新DOM(文档对象模型)。例如,你可以创建一个JavaScript函数,接收鼠标事件,根据鼠标的当前位置调整控件的坐标属性,如`style.left`和`style....
很多的时候用户需要等待你“臃肿”的 Javascript...本人使用的还是 jQuery 框架,因为这样简短的代码可能会更容易理解。 当然这个控件还有很多需要完成的地方,我仅仅是提供了一种遵循 Web 标准的实现思路。废话不
获取本地的IP、MAC地址、主机名。通过引用c:/windows/system32下的控件,获取本地IP
- JavaScript/jQuery:pcc.js 文件包含逻辑代码,处理用户交互,实现三级联动功能。可能使用事件监听(如`change`事件)和DOM操作(如`innerHTML`改变、`appendChild`添加选项等)。 3. **文件详解** - index....
首先,IP地址输入框是用户界面中一个专门用于输入IP地址的文本输入控件。IP地址,全称Internet Protocol Address,是互联网上的设备识别号,通常由四组0到255的数字组成,每组之间用点分隔,例如192.168.1.1。在网页...
这是一个用于输入特定格式数据的控件,例如电话号码、邮政编码或IP地址。在示例代码中,它被用来创建一个IP地址输入框。用户可以看到一个预定义的掩码"IP: ###.###.###.###",确保输入的IP地址格式正确。这个控件...
例如,使用jQuery库(如压缩包中的jquery-1.11.0.min.js)可以增强网页交互性,magnific-popup.js可能是用于弹出窗口或图片预览的插件,flexisel.js和swipebox.min.js可能是响应式轮播图组件,这些都能让文件传输...
以下是这个控件涉及的关键知识点: 1. **PHP**:PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,主要用于Web开发,可以嵌入到HTML中。在这个实例中,PHP用于处理用户请求,与MySQL数据库进行交互,...