1ã€å¯¹äºŽdivä¸çš„inputæ ‡ç¾åQŒå¦‚æžœdivçš„style.displayå±žæ€§äØ“'none'åQŒé‚£ä¹ˆè°ƒç”¨inputæ ‡ç¾çš„focusæ–ÒŽ³•在IE6.0上会报错åQŒé¦–先应该让其displayå±žæ€§äØ“''或è€?block'å†è°ƒç”¨ï¼›
2ã€å½“HTMLå…ƒç´ çš„name属性唯一时å¯ä»¥åˆ©ç”¨document.getElementById()调用获得˜q™ä¸ªå…ƒç´ åQ?br />
3ã€å¦‚æžœå¼‚æ¥æäº¤è€—æ—¶è¾ƒé•¿åQŒå¯åœ¨å¼‚æ¥æäº¤ä¹‹å‰æ˜¾½Cºç‰å¾…æ½Cºï¼Œåœ¨å›žè°ƒå‡½æ•îC¸æ ÒŽ®˜q”回值更新æ½Cºï¼›
4ã€åœ¨JSä¸function也是å¯ä»¥ä½œäØ“å˜é‡çš„,所以我们å¯ä»¥åœ¨è‡ªå·±ž®è£…的框架ä¸é¢„留回调函数供自定义使用åQŒå¦‚下é¢çš„代ç :
1 //common.js
2 var callback = null;
3 function commonUse(){
4 
5 if(typeof(callback) == "function"){
6 callback(
);
7 }
8 
9 }
10
11 //self.js
12 function selfUse(){
13 
14 callback = function(
){
15 //do something before
16 }
17 commonUse();
18 
19 }
5ã€JSä¸å¯ä»¥ä‹É用æ£åˆ™è¡¨è¾‘Ö¼æ¥æ ¡éªŒæ•°å—åŸŸã€æ—¥æœŸåŸŸå’ŒEMail½{‰ã€‚代ç 示例如下:
æ ¡éªŒæ—¥æœŸçš„ä¾‹å:
1 function isDate(date){
2 //å¯ÒŽ—¥æœŸæ ¼å¼è¿›è¡ŒéªŒè¯?nbsp;è¦æ±‚ä¸?000-2099òq?nbsp; æ ¼å¼ä¸?nbsp;yyyy-mm-dd òq¶ä¸”å¯ä»¥æ£å¸¸è½¬æ¢æˆæ£¼‹®çš„æ—¥æœŸ
3 var regex=/^(19|20)\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;
4
5 if(!regex.test(date)){
6 return false;
7 }
8 var arr_=date.split("-");
9 var tmp = new Date(arr_[0], parseFloat(arr_[1])-1, parseFloat(arr_[2]));
10 if(tmp.getFullYear()!=parseFloat(arr_[0])
11 || tmp.getMonth()!=parseFloat(arr_[1])-1
12 || tmp.getDate()!=parseFloat(arr_[2])){
13 return false;
14 }
15
16 return true;
17 }
˜q™ç¯‡æ–‡ç« 有详¾l†çš„说明åQ?a target="_blank" href="http://www.aygfsteel.com/byterat/archive/2006/12/20/89143.html">http://www.aygfsteel.com/byterat/archive/2006/12/20/89143.html
˜q™æœ¬ç”µå书是讲解æ£åˆ™è¡¨è¾¾å¼çš„åQ?a target="_blank" href="http://www.aygfsteel.com/Files/kawaii/RegularExpressions.zip">http://www.aygfsteel.com/Files/kawaii/RegularExpressions.zip
6ã€åœ¨JS¾~–ç ä¸ï¼Œå¦‚果代ç é‡è¾ƒå¤§ï¼Œè¦æ³¨æ„防æ¢functionåç§°é‡å¤åQŒåŒ…括直接在™åµé¢ä¸Šç¼–写的和引用外部JSæ–‡äšg的,ä¸ç„¶ä¼šå‡ºçŽîC¸€äº›èŽ«å奇妙的问题åQ?br />
7ã€æ³¨æ„JS代ç ä¸çš„函数˜q”回è¯å¥returnçš„ä‹É用;
8ã€å°½é‡æŠŠJS代ç 写在外部公共的文件ä¸åQŒè€Œåœ¨™åµé¢ä¸å¼•入,好处有:a.函数å¤ç”¨åQ›b.JSæ–‡äšg¾~“å˜åQ›c.æä¾›™åµé¢è§£æžé€Ÿåº¦ã€‚基于båQŒæˆ‘们在修改JS代ç åŽï¼Œè¦çœ‹IE的设¾|®æ˜¯å¦å°†åŽŸå…ˆçš„JSæ–‡äšg¾~“å˜é€ æˆé—®é¢˜åQ?br />
9ã€å¯¹äºŽåŒä¸€ä¸ªé¡µé¢çš„å¤šä¸ªè¡¨å•æäº¤åQŒæˆ‘们å¯ä»¥åœ¨½W¬ä¸€ä¸ªè¡¨å•ä¸è®„¡½®ç›¸åº”çš„éšè—域åQŒåœ¨è¡¨å•æäº¤ä¹‹å‰åˆ©ç”¨JS脚本把其他表å•的数æ®è®„¡½®åˆ°ç¬¬ä¸€ä¸ªè¡¨å•çš„éšè—域ä¸åQ?br />
10ã€å¯¹äºŽå¼‚æ¥æ ¡éªŒçš„æ–‡æœ¬æ¡†ï¼Œæˆ‘们一般设¾|®è§¦å‘äº‹ä»¶äØ“onblurè€Œä¸æ˜¯onchange或者onpropertychangeåQŒä»¥å‡å°‘客户端和æœåŠ¡å™¨çš„äº¤äº’‹Æ¡æ•°åQŒä½†åº”该注æ„如果˜q™ä¸ªæ–‡æœ¬æ¡†æœ€åˆæ²¡æœ‰èŽ·å¾—ç„¦ç‚¹ï¼Œé‚£ä¹ˆonblurž®×ƒ¸ä¼šè§¦å‘,å¯ä»¥å…ˆè°ƒç”¨ä»¥ä¸‹onfocusåQŒå†è°ƒç”¨onblur手动触å‘åQ?br />
11ã€JSä¸ä¸å˜åœ¨trim()函数åQŒè‡ªå®šä¹‰å¦‚下åQ?br />
1 //JS去除首尾½Iºæ ¼åQˆåŒVBSçš„Trim)
2 function trim(inputString) {
3 if (typeof inputString != "string") {
4 return inputString;
5 }
6 var retValue = inputString;
7 var ch = retValue.substring(0, 1);
8 while (ch == " ") {
9 //‹‚€æŸ¥å—½W¦ä¸²å¼€å§‹éƒ¨åˆ†çš„½Iºæ ¼
10 retValue = retValue.substring(1, retValue.length);
11 ch = retValue.substring(0, 1);
12 }
13 ch = retValue.substring(retValue.length-1, retValue.length);
14 while (ch == " ") {
15 //‹‚€æŸ¥å—½W¦ä¸²¾l“æŸéƒ¨åˆ†çš„空æ ?/span>
16 retValue = retValue.substring(0, retValue.length-1);
17 ch = retValue.substring(retValue.length-1, retValue.length);
18 }
19 while (retValue.indexOf(" ") != -1) {
20 //ž®†æ–‡å—ä¸é—´å¤šä¸ªç›¸˜qžçš„½Iºæ ¼å˜äؓ一个空æ ?/span>
21 retValue = retValue.substring(0, retValue.indexOf(" "))
22 + retValue.substring(retValue.indexOf(" ")+1, retValue.length);
23 }
24 return retValue;
25 }
12ã€JS䏿˜¾½Cºæ¨¡å¼çª—å£ï¼Œä»£ç 如下åQ?br />
1 function showMyDialog(){
2 var dialogProperty = 'dialogWidth:800px;dialogHeight:600px;status:no';
3 var windowProperty = "height=800,width=800,status=no,toolbar=no,menubar=yes,location=yes,resizable=yes,scrollbars=yes";
4
5 var url = "SomeAction.do?id="+id+"&flag=true";
6 var returnVal = window.showModalDialog(url,"", dialogProperty);
7 if(typeof(returnVal) == "undefined"){
8 return;
9 }
10 if(returnVal != ""){
11 //do something
12 }
13 }
14
在新打开的模å¼çª—å£ä¸åQŒæˆ‘们通过window.returnValue讄¡½®˜q”回å€û|¼Œç„¶åŽåœ¨çˆ¶™åµé¢ä¸æˆ‘们通过returnValå¯ä»¥æ‹¿åˆ°˜q”回倹{€?br />

]]>