1. javascript 四舍五入函数
function sswr(zhi)//四舍五入 { var val = Number(zhi);//格式强转换一下,挺有必要的 val = Math.round(val*Math.pow(10,2))/Math.pow(10,2); return val; }
比网上的多了一个格式强转换,这是在项目实际实施中遇见问题后改进的。java和javascript的float的存储问题,造成个别数值会出现小数点儿后发生问题的情况。例如在页面上的75.755,被存储成float型,就有可能是75.75499999999....
这种情况下,保留两位小数的四舍五入就会出现0.01的误差呵呵,加上个强转换能尽量减少这个情况,目前这个四舍五入的函数还没有出现误差。
2.javascript 的 trim() ,去掉前后空格
javascript本身没有trim()函数,所以如果在javascript中需要用到去掉某个字符串变量的前后空格,就要自己写一个trim()函数了:
function trim(str)//去掉首尾空格 { return str.replace(/(^\s*)|(\s*$)/g, ""); }
用的是正则表达式,具体正则表达式的原理,我也不懂,对正则表达式了解太少。
3.控制客户在页面的输入,限制页面录入,限制部分字符的录入。只允许录入数字
想要控制页面某个inputbox的输入,只能录入数字和小数点,不允许录入字母字符和汉字
首先,在页面的inputbox加上控制:
<input type="text" name="name" value="0.0"
onFocus="this.select();" style="ime-mode:disabled" onKeyPress="checkkey(this);" onBlur="setZ(this);"
>
其中 style的控制让用户不能在本inputbox中使用输入法,禁用input的输入法;
onKeyPress的事件是当这个控件获得焦点之后,任意的键盘敲击都会引发checkkey(this)这个函数;
onBlue的事件就是当这个控件失去焦点之后,运行setZ(this)这个函数
其中checkkey(this)这个函数的代码如下:
function checkkey(inputbox) { var obj = inputbox;//取得页面控件 var cellvalue = obj.value;//取得页面控件的值 if( (cellvalue.indexOf(".") >= 0)&&(event.keyCode==46) ) {//如果页面控件的文本中已经有了'.'小数点这个字符,并且客户按下了键盘上“。”这个键 event.returnValue = false;//页面对客户的按钮动作不响应 }//不能多输入“.”字符 if ( (event.keyCode < 48||event.keyCode > 57)&&(event.keyCode!=46) ) {//客户录入的不是数字或者句号按键 event.returnValue = false;//页面对客户的按钮动作不响应 } }
其中,“。”这个键的event.keyCode==46,所以可以根据event.keyCode的值来判定用户敲击了哪个按键,是否要对客户的按键动作作出反应。具体event.keyCode的意义就是可以获取用户敲击了键盘的哪个键。
在上面的函数中,控制了用户只能录入数字和小数点,而且只能录入一个小数点。也有需要只能录入数字小数点和减号字符的函数,与此相似,也就不赘述了。