Web开发常用技巧

本技巧已经通过IE、FF浏览器测试。

1.css实现输入框字符自动大写

<input style="text-transform:uppercase" />

演示:

2.页面居中html/css

<!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>
<style type="text/css">
	body{width:960px;margin:0 auto;}
	div{height:100px;background-color:#ADCF73;}
</style>
</head>
<body>
<div id="wrapper">test</div>test
</body>
</html>

注意:ie6必须加入第一行<!DOCTYPE...

ie5这样写不行,必须这样写:body{text-align:center;}#wrapper{width:960px;margin:0 auto;}

3.单击tr选中radio button

<table border="1">
	<tr><th>姓名</th><th>Email</th></tr>
	<tr onclick="chkUser(this);">
		<td><input type="radio" name="employee" value="1" />张三</td>
		<td>zhangsan@xxx.com</td>
	</tr>
	<tr onclick="chkUser(this);">
		<td><input type="radio" name="employee" value="1" />李四</td>
		<td>lisi@xxx.com</td>
	</tr>
</table>
<script type="text/javascript">
<!--
	 function chkUser(obj) { obj.cells[0].childNodes[0].checked = true; }
//-->
</script>

演示:

姓名Email
张三 zhangsan@xxx.com
李四 lisi@xxx.com

4.倒计时JS

<script type="text/javascript">
function count() {
	var now = new Date();
	var y = now.getYear();
	var m = now.getMonth() + 1;
	var d = now.getDate();
	var h = now.getHours();
	var n = now.getMinutes();
	var s = now.getSeconds();
 
	var time = new Date('9999', '1', '1', '0', '0', '00');
	var temp = new Date(y, m, d, h, n, s);
	var diff = (time.valueOf() - temp.valueOf()) / 1000;
	setTimeout('count()', 1000);
	document.getElementById('leaveTime').innerHTML = getLeaveTimeString(diff);
}
function getLeaveTimeString(ms) {
	if (ms <= 0) return ''; 
	var str = '9999年元旦倒計時:';
	if (ms > 86400) {
		str = str + String(Math.floor(ms / 86400)) + '天';
		ms = ms % 86400;
	}
	if (ms > 3600) {
		str = str + String(Math.floor(ms / 3600)) + '小时';
		ms = ms % 3600;
	}
	if (ms > 60) {
		str = str + String(Math.floor(ms / 60)) + '分';
		ms = ms % 60;
	}
	str = str + String(ms) + '秒';
	return str;
}
</script>
<span id="leaveTime"></span>
<script type="text/javascript">count();</script>

5.对话框

方式一:

//p1.htm
function selData() {
	var url = 'p2.htm';
	var rtnVal = openWin(url, 600, 500);
	alert(rtnVal);
}
function openWin(url, width, height) {
	return window.showModalDialog(url, this, 'dialogWidth:' + width + 'px;dialogHeight:' + height + 'px;');
}

//p2.htm
function closeWin() {
	window.returnValue = 'return value.';
	window.close();
}

方式二:

//p1.htm
function selData() {
	var url = 'p2.htm';
	openWin(url, 600, 500);
}
function callback(rtnVal) {
	alert(rtnVal);
}
function openWin(url, width, height) {
	return window.showModalDialog(url, this, 'dialogWidth:' + width + 'px;dialogHeight:' + height + 'px;');
}

//p2.htm
function closeWin() {
	window.dialogArguments.callback('return value.');
	window.close();
}

6.提交表单等待信息

function showMessage() {
	document.forms[0].style.display = 'none';
	if (!document.getElementById('waitMessage')) {
		var div = document.createElement('DIV');
		div.id = 'waitMessage';
		div.className = 'message';
		div.innerHTML = '资料处理中﹐请稍等...';
		document.body.insertBefore(div, document.body.firstChild);
	} else {
		document.getElementById('waitMessage').style.display = 'block';
	}
}

演示:

7.去掉字符串左右空格

使用方式:document.getElementById('txt').value.trim();

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g, '');
}

8.格式化日期

使用方式:(new Date()).format('yyyy/mm/dd');

Date.prototype.format = function(formatStr) {   
	var str = formatStr;
	var y, m, d, h, n, s;
	y = this.getYear();
	m = this.getMonth() + 1;
	d = this.getDate();
	h = this.getHours();
	n = this.getMinutes();
	s = this.getSeconds();
	str = str.replace(/yyyy|YYYY/, y);
	str = str.replace(/yy|YY/, (y % 100) > 9 ? (y % 100) : '0' + (y % 100));
	str = str.replace(/mm|MM/, m > 9 ? m : '0' + m);
	str = str.replace(/m|M/g, m);
	str = str.replace(/dd|DD/, d > 9 ? d : '0' + d);
	str = str.replace(/d|D/g, d);
	str = str.replace(/hh|HH/, h > 9 ? h : '0' + h);
	str = str.replace(/h|H/g, h);
	str = str.replace(/nn|NN/, n > 9 ? n : '0' + n);
	str = str.replace(/n|N/g, n);
	str = str.replace(/ss|SS/, s > 9 ? s : '0' + s);
	str = str.replace(/s|S/g, s);
	return str;
}

9.添加删除Table行

function addRow(tb) {
	var curTb = document.getElementById(tb);
	var row = curTb.insertRow(curTb.rows.length);
	if (row) {
		var cell = row.insertCell(0);
		cell.innerHTML = '<input name="delTR" type="button" value="删除" onclick="delRow(this);" />王五';
		cell = row.insertCell(1);
		cell.innerHTML = 'wangwu@xxx.com';
	}
}
function delRow(obj) {
	var curTr = obj.parentNode.parentNode;
	var curTb = curTr.parentNode;
	curTb.deleteRow(curTr.rowIndex);
}

演示:

姓名Email
张三 zhangsan@xxx.com
李四 lisi@xxx.com

10.全选/反选

function chkAll(obj, name) {
	var items = document.getElementsByName(name);
	if (obj.checked) {
		for (var i = 0; i < items.length; i++) {
			items[i].checked = true;
		}
	} else {
		for (var i = 0; i < items.length; i++) {
			items[i].checked = false;
		}
	}
}

演示:

11.显示/隐藏

function expand(obj, id) {
	var elem = document.getElementById(id);
	if (obj.innerHTML == '隐藏') {
		elem.style.display = 'none';
		obj.innerHTML = '显示';
	} else {
		elem.style.display = 'block';
		obj.innerHTML = '隐藏';
	}
}

演示:

隐藏
Test value

12.运行代码

function runCode(id) {
	var code = document.getElementById(id).value;
	var newWin = window.open('', '', ''); 
	newWin.opener = null;
	newWin.document.write(code);
	newWin.document.close();
}

演示:

13.页面背景图片固定

CSS:

body{background:#fff url(bg.jpg) no-repeat fixed right bottom;}

14.JS给TextBox赋值,并触发TextBox事件

<input type="text" id="txt1" />
<input type="text" id="txt2" onpropertychange="document.getElementById('txt1').value='Hello '+this.value;" />
<input type="button" onclick="document.getElementById('txt2').value='world';" value="Submit" />

示例:

posted @ 2009-03-16 10:47  known  阅读(700)  评论(0编辑  收藏  举报