?? global.js
字號:
/** * JS回置函數群 * * Author : EasyChen@Gmail.com * GreatThanksto : liyuan's selectPro.js * */ function getElement( name ) { var el = document.getElementsByName( name ); if( el[0] == null ) { alert( 'cannot find ' + name + ' ! ' ); } else { return el[0]; } } /** * 回置input text */function set_text( name , value ){ var el = getElement( name ); el.value = value;}/** * 回置日期框 */function set_date( str , yname , mname , dname ){ var vs = str.split( '-' ); set_select( yname , vs[0] ); set_select( mname , vs[1] ); set_select( dname , vs[2] );}/** * just setback year and month */function set_year_month( str , yname , mname ){ var vs = str.split( '-' ); set_select( yname , vs[0] ); set_select( mname , vs[1] );}/** * 回置下拉框 * * select 的回置必須指定value,如果該option沒有value,則顯示為空白 * select回置為數值時,firefox會把01變成1,而ie不會,必須精確匹配 */function set_select( name , value ){ var sel = getElement( name ); var ops = sel.options; for( var i = 0 ; i < ops.length ; i++ ) { if( ops[i].value == value ) { try { if( i != ops.selectedIndex ) { ops.selectedIndex = i; ops[i].selected = true; } } catch( e ) { // alert( e.description ); // ie對于動態生成的下拉框會拋出一個“不能設置selected屬性,未指明的錯誤”的異常 // 原因不明,先不做處理 } } }}/** * 回置單選按鈕 * * 通過遍歷該名稱的radio組件實現 */function set_radio( name , value ){ var objRadio = document.getElementsByName( name ); for(var i=0;i<objRadio.length;i++) { if(objRadio[i].type=="radio") { if( objRadio[i].value == value ) { objRadio[i].checked = true; } } }}function set_checkbox( name , value ){ var obj = document.getElementsByName( name ); for(var i=0;i<obj.length;i++) { if(obj[i].type=="checkbox") { if( obj[i].value == value ) { obj[i].checked = true; } } }}/** * 初始化select下拉框 * */function ini_select( name , Karray , N ){ var selObj = getElement( name ); for( key in Karray ) { if (key == 0 && N == 1) { // alert( Karray[key] ); continue; } selObj.options[selObj.length]=new Option( Karray[key] , key ); }}/** * 添加select的option項 * */function add_option( name , texts , value ){ var selObj = getElement( name ); selObj.options[selObj.length]=new Option( texts , value );}/** * 移出select的選項 */function remove_option( name , value ){ var selObj = getElement( name ); for( var i = 0 ; i < selObj.length ; i++ ) { if( selObj[i].value == value ) { try { selObj.remove( i ); } catch( e ) { // alert( e.description ); //e.description } } }}/* * 給元素添加事件 * * 如何傳遞有參數的函數? * 使用匿名function * - 如 add_event( name1 , "change" , function(){ adjust_select( name1 , name2 , array2 ) } ); */function add_event( name , event , func ){ var el = getElement( name ); var names = navigator.appName; if( names == "Microsoft Internet Explorer" ) { // IE el.attachEvent( "on" + event , func ); } else { // 其他瀏覽器使用addEventListener(是W3c規范) el.addEventListener( event , func , false); } // if( names == "Netscape" ) }/** * adjust_select用于保持二級聯動之間的一致性 * * 由1級選項自動調整2級選項 * array2是和array1相對應的一個關聯數組 * 詳細格式見city.js */function adjust_select( name1 , name2 , array2 , N ){ var obj1 = getElement( name1 ); var obj2 = getElement( name2 ); // 取得obj1被選中的項 var str = parseInt( obj1.options[obj1.selectedIndex].value ); //if( str != 0 && str != NaN ) if( str != NaN ) { obj2.innerHTML=""; ini_select( name2 , array2[str] , N ); } else { obj2.innerHTML=""; }}/** * 由二級菜單的值直接推算一級菜單 */function set_select_by_2( name1 , name2 , array2 , value2 ){ value2 = value2 + ''; var pcode = value2.substr( 0 , 2 ); set_select( name1 , pcode ); adjust_select( name1 , name2 , array2 ); set_select( name2 , value2 );}/** * 根據條件生成year * * 當beginyear小于等于零時,beginyear為相對于當前年份的起始時間,endyear為向后數的年份 * 0 , 5 - 從今年開始向后5年 * -5 , 10 - 從5年前向后10年 */function ini_year( yname , beginyear , endyear ){ var year = getElement( yname ); year.innerHTML = ''; var d = new Date(); if( beginyear <= 0 ) { beginyear += d.getFullYear(); endyear += beginyear; } if( beginyear < endyear ) { for( var i = beginyear ; i <= endyear ; i++ ) { year.options[year.length] = new Option( i + '' , i ); } } else { for( var i = beginyear ; i >= endyear ; i-- ) { year.options[year.length] = new Option( i + '' , i ); } }}function ini_month( name ){ ini_num( name , 12 );}function ini_date( name ){ ini_num( name , 31 );}function ini_num( name , num ){ var date = getElement( name ) var o = date.value; date.innerHTML = ''; for( var i =1 ; i <= num ; i++ ) { date.options[date.length] = new Option( i + '' , i ); } if( o != NaN ) { set_select( name , o ); }}function year_set_ini( yname , beginyear , endyear , mname , dname ){ ini_year( yname , beginyear , endyear ); ini_month( mname ); ini_date( dname ); add_event( mname , "change" , function(){ adjust_date( yname , mname , dname ) } ); add_event( yname , "change" , function(){ adjust_date( yname , mname , dname ) } );}function year_set_back( yname , beginyear , endyear , mname , dname , value ){ year_set_ini( yname , beginyear , endyear , mname , dname ); set_date( value , yname , mname , dname ); adjust_date( yname , mname , dname );}function adjust_date( yname , mname , dname ){ var year = getElement( yname ); var month = getElement( mname ); var date = getElement( dname ); var n = 31; var y = year.options[year.selectedIndex].value; var m = month.options[month.selectedIndex].value; if( m == 4 || m == 6 || m == 9 || m == 11 ) { n = 30; } if( m == 2 ) { if( y % 4 == 0 && y % 100 != 0 ) { n = 29; } else { n =28; } } ini_num( dname , n ); }function select_set_back( name , array , value , N ){ ini_select( name , array , N ); if( value != '' ) { set_select( name , value ); }}function select_set_ini( name , array , N ){ ini_select( name , array , N );}function change_action( name , formname , action ){ add_event( name , "click" , function(){ var f = getElement( formname );f.action = action; } );}/** * 初始化并回置聯動菜單數據 */function dselect_set_back( name1 , array1 , name2 , array2 , value2 , N ){ //ini_select( name1 , array1 ); //add_event( name1 , "change" , function(){ adjust_select( name1 , name2 , array2 } ); dselect_set_ini( name1 , array1 , name2 , array2 , N ); if( value2 != '' ) { set_select_by_2( name1 , name2 , array2 , value2 ); } }/** * 初始化聯動菜單 */function dselect_set_ini( name1 , array1 , name2 , array2 , N ){ ini_select( name1 , array1 , N ); add_event( name1 , "change" , function(){ adjust_select( name1 , name2 , array2 ) } );}function getYear(){ var d = new Date(); return d.getFullYear();}function getMon(){ var d = new Date(); return d.getMonth();}function getCurrentDate(){ var d = new Date(); var y = d.getFullYear(); var m = d.getMonth()+1; var dt = d.getDate(); return y + '-' + m + '-' + dt ; }String.prototype.trim = function(){// 用正則表達式將前后空格// 用空字符串替代。return this.replace(/(^\s*)|(\s*$)/g, "");}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -