求JS控制文本的解决方案,最好是正则,谢谢! 解决方案正则js 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function onlyNum(){if((event.keyCode>57||event.keyCode<48)&&event.keyCode!=46){alert('请输入数字!');window.event.keyCode = 0 ;}}function limitDecimal(obj,length,event){ var e = window.event || event; if(obj.value.indexOf(".") == -1 || obj.value.indexOf(".") > length)return false;//如果小数点在数字两侧 if(e.keyCode == 37)return false;//解决光标向左移动的问题 var index = obj.value.indexOf(".");//获得“.”的位置 if(obj.value.length-index-1 < length)return false;//不知道这句话是做什么的。 if(obj.value.substr(index+1,length)!=0 && obj.value.substr(index+1,length)!=5 ){ obj.value = obj.value.substring(0,index) + obj.value.substr(index,length); alert('请输入数字,小数位可以是0.5!'); } obj.value = obj.value.substring(0,index) + obj.value.substr(index,length+1); num(); return false;}这个是现在用的控制函数,不能满足要求! 我也想到数组了,是不是用indexOf() 函数来做判断? 因为各输入框的控制条件不相同所以判定函数 onlyNum 应传入或俘获当前控件这样才能根据不同的对象做相应的检查处理你的 onlyNum 是由按键事件触发的,这样 0.5 就不是很好处理(3次按键)可改由失去焦点时触发 本帖最后由 showbo 于 2014-05-15 11:10:46 编辑 正则如下,不过个人觉得还是下拉框比较好。 <INPUT TYPE="text" NAME="" onkeyup="fun(0,this)"> <INPUT TYPE="text" NAME="" onkeyup="fun(1,this)"> <INPUT TYPE="text" NAME="" onkeyup="fun(2,this)"> <INPUT TYPE="text" NAME="" onkeyup="fun(3,this)"> function fun(type, obj){ var arr = ["^(4|3|2)$", "^(3|2|1|0)$", "^(2|1|0)$", "^(1|(0\.5)|0|0\.)$"]; var reg = new RegExp(arr[type]); if (!reg.test(obj.value)) { alert("请填写正确的值"); obj.select(); } } 新手提问,js如何获取控件的属性值 JQuery的简单问题!! script 中自动提交表但问题(非高手不能解决!!!)(在线等!!!) 如何给相同name的对象赋值? 【100分】如何让一个文本框只能删除不能输入字符? javascript实现工龄工资计算问题 请教:连续往两个下拉列表框时增加数据元素时,第二个下拉列表框不会根据添加字符串的长度来自动调整下拉列表框的长度,??? 改变td的背景颜色! 改变窗口大小就自动刷新如何实现 求大神帮忙解一段JS编码,小弟跪谢了! 求一句JQUERY的选择元素语句,谢谢 jQuery的get方法,为什么1.3.1有反应,1.11.0就没有反应?
if((event.keyCode>57||event.keyCode<48)&&event.keyCode!=46)
{
alert('请输入数字!');
window.event.keyCode = 0 ;
}
}
function limitDecimal(obj,length,event)
{
var e = window.event || event;
if(obj.value.indexOf(".") == -1 || obj.value.indexOf(".") > length)return false;//如果小数点在数字两侧
if(e.keyCode == 37)return false;//解决光标向左移动的问题
var index = obj.value.indexOf(".");//获得“.”的位置
if(obj.value.length-index-1 < length)return false;//不知道这句话是做什么的。
if(obj.value.substr(index+1,length)!=0 && obj.value.substr(index+1,length)!=5 ){
obj.value = obj.value.substring(0,index) + obj.value.substr(index,length);
alert('请输入数字,小数位可以是0.5!');
}
obj.value = obj.value.substring(0,index) + obj.value.substr(index,length+1);
num();
return false;
}这个是现在用的控制函数,不能满足要求!
所以判定函数 onlyNum 应传入或俘获当前控件
这样才能根据不同的对象做相应的检查处理你的 onlyNum 是由按键事件触发的,这样 0.5 就不是很好处理(3次按键)
可改由失去焦点时触发
<INPUT TYPE="text" NAME="" onkeyup="fun(1,this)">
<INPUT TYPE="text" NAME="" onkeyup="fun(2,this)">
<INPUT TYPE="text" NAME="" onkeyup="fun(3,this)">
function fun(type, obj){
var arr = ["^(4|3|2)$", "^(3|2|1|0)$", "^(2|1|0)$", "^(1|(0\.5)|0|0\.)$"];
var reg = new RegExp(arr[type]);
if (!reg.test(obj.value))
{
alert("请填写正确的值");
obj.select();
}
}