领导要求复杂的文本框 一个文本框,实现输入mac地址,复杂的是要求页面载入的时候,文本框里已经有“ - - - - - ”这样的格式了,用户只需要输入数字和英文字母,输入的内容自己在文本框里输入到相应位置了。就和咱们机器TCP/IP设置里,填写ip地址差不多,但是要求用一个文本框实现。不知道各位,这样的功能能实现不?如果不能,那怎样才能实现mac地址的智能输入?我的想法是用5个文本框来实现。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以前在java大阪貌似也讨论过这个,但是最后未果。关注了 通过css样式控制,可以达到那个效果,给人感觉上就一个text框,实际上还是用5个框来处理 用一个的话.要控制光标. 要控制 onkeydown 要处理鼠标的剪切粘贴什么的. 效果和严谨都不如用5个.. 一下是但文本框的<input type="text" id="mac" value=" - - - - - " maxlength="17"><script type="text/javascript"> function addEvent(elem, type, hdl){ if (elem.addEventListener) { elem.addEventListener(type, hdl, false); } else if (elem.attachEvent) { elem.attachEvent("on" + type, hdl); } else { elem["on" + type] = hdl; } } addEvent(document.getElementById('mac'), 'keydown', function(e){ e = e || window.event; var target = e.srcElement || e.target, key = e.keyCode, ch = String.fromCharCode(key); if ((key > 47 && key < 58) || (key > 64 && key < 71)) { var mac = target.value.split(/\s*-\s*/); for (var i = 0; i < mac.length; i++) { mac[i] = mac[i].replace(/\s+/, ''); if (mac[i].length == 0) mac[i] += ch, ch = ' '; if (mac[i].length == 1) mac[i] += ch, ch = ' '; } target.value = mac.join('-'); } if (e.preventDefault) e.preventDefault(); else e.returnValue = false; });</script> html和xhtml之间的区别为什么在浏览器中没有作用 关于$.post的问题 帮忙将这几句prototype代码改成jquery的, 能不能 点下一个按钮 展开输入框的历史表单记录 javascript fso 权限问题! 哪位高手给指点一下 有关在eval中的字符串换行问题,在线等…… 求教,这种效果是怎么做出来的? 怎么得到一个对象的当前在屏幕上的left和top? 有什么容器既有innerHTML属性,又有滚动条的. 一道外资公司的面试题 ~ ~ ~ ~ 克隆对象很容易, 那么请问如何克隆函数呢? ~ ~ ~ ~ ~ ~
效果和严谨都不如用5个..
<script type="text/javascript">
function addEvent(elem, type, hdl){
if (elem.addEventListener) {
elem.addEventListener(type, hdl, false);
} else if (elem.attachEvent) {
elem.attachEvent("on" + type, hdl);
} else {
elem["on" + type] = hdl;
}
}
addEvent(document.getElementById('mac'), 'keydown', function(e){
e = e || window.event;
var target = e.srcElement || e.target, key = e.keyCode, ch = String.fromCharCode(key);
if ((key > 47 && key < 58) || (key > 64 && key < 71)) {
var mac = target.value.split(/\s*-\s*/);
for (var i = 0; i < mac.length; i++) {
mac[i] = mac[i].replace(/\s+/, '');
if (mac[i].length == 0) mac[i] += ch, ch = ' ';
if (mac[i].length == 1) mac[i] += ch, ch = ' ';
}
target.value = mac.join('-');
}
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
});
</script>