⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 select.js

📁 架設ROSE私服必備之物 ROSE數據庫
💻 JS
字号:
// ===================================================================// Author: Matt Kruse <matt@mattkruse.com>// WWW: http://www.mattkruse.com///// NOTICE: You may use this code for any purpose, commercial or// private, without any further permission from the author. You may// remove this notice from your final code if you wish, however it is// appreciated by the author if at least my web site address is kept.//// You may *NOT* re-distribute this code in any way except through its// use. That means, you can include it in your product, or your web// site, or any other form where the code is actually being used. You// may not put the plain javascript up on your site for download or// include it in your javascript libraries for download. // If you wish to share this code with others, please just point them// to the URL instead.// Please DO NOT link directly to my .js files from your site. Copy// the files to your server and use them there. Thank you.// ===================================================================// HISTORY// ------------------------------------------------------------------// June 12, 2003: Modified up and down functions to support more than//                one selected option/*DESCRIPTION: These are general functions to deal with and manipulateselect boxes. Also see the OptionTransfer library to more easily handle transferring options between two listsCOMPATABILITY: These are fairly basic functions - they should work onall browsers that support Javascript.*/// -------------------------------------------------------------------// hasOptions(obj)//  Utility function to determine if a select object has an options array// -------------------------------------------------------------------function hasOptions(obj) {	if (obj!=null && obj.options!=null) { return true; }	return false;	}// -------------------------------------------------------------------// selectUnselectMatchingOptions(select_object,regex,select/unselect,true/false)//  This is a general function used by the select functions below, to//  avoid code duplication// -------------------------------------------------------------------function selectUnselectMatchingOptions(obj,regex,which,only) {	if (window.RegExp) {		if (which == "select") {			var selected1=true;			var selected2=false;			}		else if (which == "unselect") {			var selected1=false;			var selected2=true;			}		else {			return;			}		var re = new RegExp(regex);		if (!hasOptions(obj)) { return; }		for (var i=0; i<obj.options.length; i++) {			if (re.test(obj.options[i].text)) {				obj.options[i].selected = selected1;				}			else {				if (only == true) {					obj.options[i].selected = selected2;					}				}			}		}	}		// -------------------------------------------------------------------// selectMatchingOptions(select_object,regex)//  This function selects all options that match the regular expression//  passed in. Currently-selected options will not be changed.// -------------------------------------------------------------------function selectMatchingOptions(obj,regex) {	selectUnselectMatchingOptions(obj,regex,"select",false);	}// -------------------------------------------------------------------// selectOnlyMatchingOptions(select_object,regex)//  This function selects all options that match the regular expression//  passed in. Selected options that don't match will be un-selected.// -------------------------------------------------------------------function selectOnlyMatchingOptions(obj,regex) {	selectUnselectMatchingOptions(obj,regex,"select",true);	}// -------------------------------------------------------------------// unSelectMatchingOptions(select_object,regex)//  This function Unselects all options that match the regular expression//  passed in. // -------------------------------------------------------------------function unSelectMatchingOptions(obj,regex) {	selectUnselectMatchingOptions(obj,regex,"unselect",false);	}	// -------------------------------------------------------------------// sortSelect(select_object)//   Pass this function a SELECT object and the options will be sorted//   by their text (display) values// -------------------------------------------------------------------function sortSelect(obj) {	var o = new Array();	if (!hasOptions(obj)) { return; }	for (var i=0; i<obj.options.length; i++) {		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;		}	if (o.length==0) { return; }	o = o.sort( 		function(a,b) { 			if ((a.text+"") < (b.text+"")) { return -1; }			if ((a.text+"") > (b.text+"")) { return 1; }			return 0;			} 		);	for (var i=0; i<o.length; i++) {		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);		}	}// -------------------------------------------------------------------// selectAllOptions(select_object)//  This function takes a select box and selects all options (in a //  multiple select object). This is used when passing values between//  two select boxes. Select all options in the right box before //  submitting the form so the values will be sent to the server.// -------------------------------------------------------------------function selectAllOptions(obj) {	if (!hasOptions(obj)) { return; }	for (var i=0; i<obj.options.length; i++) {		obj.options[i].selected = true;		}	}	// -------------------------------------------------------------------// moveSelectedOptions(select_object,select_object[,autosort(true/false)[,regex]])//  This function moves options between select boxes. Works best with//  multi-select boxes to create the common Windows control effect.//  Passes all selected values from the first object to the second//  object and re-sorts each box.//  If a third argument of 'false' is passed, then the lists are not//  sorted after the move.//  If a fourth string argument is passed, this will function as a//  Regular Expression to match against the TEXT or the options. If //  the text of an option matches the pattern, it will NOT be moved.//  It will be treated as an unmoveable option.//  You can also put this into the <SELECT> object as follows://    onDblClick="moveSelectedOptions(this,this.form.target)//  This way, when the user double-clicks on a value in one box, it//  will be transferred to the other (in browsers that support the //  onDblClick() event handler).// -------------------------------------------------------------------function moveSelectedOptions(from,to) {	// Unselect matching options, if required	if (arguments.length>3) {		var regex = arguments[3];		if (regex != "") {			unSelectMatchingOptions(from,regex);			}		}	// Move them over	if (!hasOptions(from)) { return; }	for (var i=0; i<from.options.length; i++) {		var o = from.options[i];		if (o.selected) {			if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }			to.options[index] = new Option( o.text, o.value, false, false);			}		}	// Delete them from original	for (var i=(from.options.length-1); i>=0; i--) {		var o = from.options[i];		if (o.selected) {			from.options[i] = null;			}		}	if ((arguments.length<3) || (arguments[2]==true)) {		sortSelect(from);		sortSelect(to);		}	from.selectedIndex = -1;	to.selectedIndex = -1;	}// -------------------------------------------------------------------// copySelectedOptions(select_object,select_object[,autosort(true/false)])//  This function copies options between select boxes instead of //  moving items. Duplicates in the target list are not allowed.// -------------------------------------------------------------------function copySelectedOptions(from,to) {	var options = new Object();	if (hasOptions(to)) {		for (var i=0; i<to.options.length; i++) {			options[to.options[i].value] = to.options[i].text;			}		}	if (!hasOptions(from)) { return; }	for (var i=0; i<from.options.length; i++) {		var o = from.options[i];		if (o.selected) {			if (options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text) {				if (!hasOptions(to)) { var index = 0; } else { var index=to.options.length; }				to.options[index] = new Option( o.text, o.value, false, false);				}			}		}	if ((arguments.length<3) || (arguments[2]==true)) {		sortSelect(to);		}	from.selectedIndex = -1;	to.selectedIndex = -1;	}// -------------------------------------------------------------------// moveAllOptions(select_object,select_object[,autosort(true/false)[,regex]])//  Move all options from one select box to another.// -------------------------------------------------------------------function moveAllOptions(from,to) {	selectAllOptions(from);	if (arguments.length==2) {		moveSelectedOptions(from,to);		}	else if (arguments.length==3) {		moveSelectedOptions(from,to,arguments[2]);		}	else if (arguments.length==4) {		moveSelectedOptions(from,to,arguments[2],arguments[3]);		}	}// -------------------------------------------------------------------// copyAllOptions(select_object,select_object[,autosort(true/false)])//  Copy all options from one select box to another, instead of//  removing items. Duplicates in the target list are not allowed.// -------------------------------------------------------------------function copyAllOptions(from,to) {	selectAllOptions(from);	if (arguments.length==2) {		copySelectedOptions(from,to);		}	else if (arguments.length==3) {		copySelectedOptions(from,to,arguments[2]);		}	}// -------------------------------------------------------------------// swapOptions(select_object,option1,option2)//  Swap positions of two options in a select list// -------------------------------------------------------------------function swapOptions(obj,i,j) {	var o = obj.options;	var i_selected = o[i].selected;	var j_selected = o[j].selected;	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);	o[i] = temp2;	o[j] = temp;	o[i].selected = j_selected;	o[j].selected = i_selected;	}	// -------------------------------------------------------------------// moveOptionUp(select_object)//  Move selected option in a select list up one// -------------------------------------------------------------------function moveOptionUp(obj) {	if (!hasOptions(obj)) { return; }	for (i=0; i<obj.options.length; i++) {		if (obj.options[i].selected) {			if (i != 0 && !obj.options[i-1].selected) {				swapOptions(obj,i,i-1);				obj.options[i-1].selected = true;				}			}		}	}// -------------------------------------------------------------------// moveOptionDown(select_object)//  Move selected option in a select list down one// -------------------------------------------------------------------function moveOptionDown(obj) {	if (!hasOptions(obj)) { return; }	for (i=obj.options.length-1; i>=0; i--) {		if (obj.options[i].selected) {			if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {				swapOptions(obj,i,i+1);				obj.options[i+1].selected = true;				}			}		}	}// -------------------------------------------------------------------// removeSelectedOptions(select_object)//  Remove all selected options from a list//  (Thanks to Gene Ninestein)// -------------------------------------------------------------------function removeSelectedOptions(from) { 	if (!hasOptions(from)) { return; }	for (var i=(from.options.length-1); i>=0; i--) { 		var o=from.options[i]; 		if (o.selected) { 			from.options[i] = null; 			} 		} 	from.selectedIndex = -1; 	} // -------------------------------------------------------------------// removeAllOptions(select_object)//  Remove all options from a list// -------------------------------------------------------------------function removeAllOptions(from) { 	if (!hasOptions(from)) { return; }	for (var i=(from.options.length-1); i>=0; i--) { 		from.options[i] = null; 		} 	from.selectedIndex = -1; 	} // -------------------------------------------------------------------// addOption(select_object,display_text,value,selected)//  Add an option to a list// -------------------------------------------------------------------function addOption(obj,text,value,selected) {	if (obj!=null && obj.options!=null) {		obj.options[obj.options.length] = new Option(text, value, false, selected);		}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -