在网上搜索了很多代码,发现一般都是使用replace或者是window.event.returnValue,不知道是我的使用方法不对,还是代码什么地方写错了,总感觉不怎么好用,后面发现numberbox自带的filter在禁止输入的时候非常好用.
请看代码:
功能:在显示的时候只能是两位小数,在输入的时候如果已经有两位小数,那么禁止输入
JSP代码:
data-options="required: true,precision:2" style="width:30px;text-align: right;"/>
JS代码:
function setFixRate(tt,event){
//var value = $('._fixRate').numberbox('getValue');//不能使用numberbox的getValue,这个是隐藏框的值
//如果有小数点
var value = $('._fixRate').val();//这个才是输入框的值
if(value.indexOf(".") >= 0){//如果包含小数点
if((value.substring(value.indexOf(".")+1).length) >=2){//如果小数位数已经有两位
//window.event.returnValue = false;
//$('._fixRate').val(value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3'));
//$('._fixRate').numberbox('filter',false);
$('._fixRate').numberbox('options').filter = function(){
//让filter返回false会禁止按键输入
return false;
};
}else{
//记得写else,否则该nunberbox将不允许再次输入了
$('._fixRate').numberbox('options').filter = function(){
return true;
}
}
}