(3、使用Dom获取标签文本
IE中使用innerText
FireFox使用textContent
(4、动态网页绑定
Id:attachEvent
FireFox:addEventListener
(5、不同浏览器css样式支持不同:
哀悼网页使用的css只有IE才支持,FF不支持
(6、JQuery进行封装:可在不同浏览器中进行封装
解决不同浏览器中Dom的不同-->
19、键盘码操作以及金融框案例:
案例1:
财务相关系统中涉及到金额的文本框有如下要求:
*进入金额文本文本框不使用中文输入法 不能输入非数字 焦点在文本框中时文本框左对齐;焦点离开文本框时文本框右对齐,显示千 分位 禁用输入法:
*禁止键入非法值,只有这些才能被键入 (k == 9) || (k == 13) ||
(k==46)||(k==8)||(k==189)||(k==109)||(k==190)||(k==110)|| (k>=48 &&
k<=57)||(k>=96 && k<=105)||(k>=37 && k<=40) 。 onkeydown="return
numonKeyDown()" 不要写成 onkeydown="numonKeyDown()" 区分事件响应函数 和事件响应函数调用的函数。
* 禁止粘贴 ( 伟大的 Tester) , <input onpaste="return false;" ,太暴力,应该只是禁止粘贴非法值。在 onpaste 中通过 clipboardData.getData('Text')
取到粘贴板中的值,然后遍历每个字符,看是否是合法的值,如果全部是合法值才允许粘贴,只要有一个非法值就禁止粘贴。 charAt 、 charCodeAt添加千分位 的方法
* 焦点在的时候左对齐没有千分位,焦点不在时右对齐千分位:this.style.textAlign='right'
复制代码 代码如下:
金融文本框设置
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>欢迎来到daomul的博客,欢迎再来,谢谢</title>
<script type="text/javascript">
//非数字
function numonKeyDown() {
var k = window.event.keyCode;
return isValidNum(k);
}
//判断k是否为合法的Ascii
function isValidNum(k) {
return ((k == 9) || (k == 13) || (k == 46) || (k == 8) || (k == 189) || (k == 109) || (k == 190) || (k == 110) || (k >= 48 && k <= 57) || (k >= 96 && k <= 105) || (k >= 37 && k <= 40));
}
//添加千分位
function commafy(n) {
//var re = /\d{1,3}(?=(\d{3})+$)/g;
//var n1 = n.replace(/^(\d+)/((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,"$,")+s2;});
re = /(\d{1,3})(?=(\d{3})+(?:$|\D))/g;
n1 = n.replace(re, "$1,")
return n1;
}
//处理粘贴板数据
function numPaste() {
var text = window.clipboardData.getData("Text");
for (var i = 0; i < text.length; i++) {
var asc = text.charCodeAt(i); //charAt→"3",charCodeAt()取到的是ASCII码
if (!isValidNum(asc)) { //遇到一个非法值就认为要粘贴的内容是非法的return false
return false;
}
}
}
</script>
</head>
<body onkeydown="if(window.event.keyCode==13){window.event.keyCode=9;}">
不能输入非数字:
<input type="text" onkeydown="var k=window.event.keyCode; if((k == 9) || (k == 13) || (k==46)||(k==8)||(k==189)||(k==109)||(k==190)||(k==110)|| (k>=48 && k<=57)||(k>=96 && k<=105)||(k>=37 && k<=40)){}else{return false;}" />
<br />
禁用输入法:
<input type="text" />
<br />
不能输入和粘贴非数字:
<input type="text" onpaste="return numPaste()" onkeydown="return numonKeyDown()" />
<br />
添加去掉千分位:
<input type="text" value="95654784.75"
onblur="this.value=commafy(this.value);this.style.textAlign='right';"
onfocus="this.style.textAlign='left';this.value=this.value.replace(/,/g,'')" />
<br />
</body>
</html>
复制代码 代码如下: