DynamicOptionList连动菜单代码

2019-06-02 10:22:01丽君


/**
 * get Element By Id or name.
 * 根据一个dom对象的名称返回这个对象,省略了你
 * 直接操作document.getElementById的过程.
 * 
 * 例如: $('默认文本框的名称').value 
 *       就可以取得它的value
 */
function $() {
  var elements = new Array();

  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);

    if (arguments.length == 1)
      return element;

    elements.push(element);
  }

  return elements;
}

/*
 * 自动填充一个下拉列表,一般用于填充连动菜单的第一项
 *
 * selname :: 当前下拉选项(this)
 *            后缀是为了区分由程序动态生成的如果有多个相同的下拉选项而设
 *            置的一个辅助名称后缀('_'下划线作为后缀的分隔符),如果没有这
 *            个需要可以忽略 “_后缀”,只要设置一个普通的名称即可.
 *
 * seldata :: 数据源,菜单的数据项(子下拉选项名称,子下拉选项值,子下拉选项过滤值)
 * filter  :: 下拉选项的过滤条件
 * 
 */
function fillselect(selname,seldata,filters) {
 var sel = $(selname);
 var data = seldata.split(";");
 var filtersdata = filters.split(";");

 var index = "";
 var selkey = "";
 var selvalue = "";

 if(data.length > 0) {

  //过滤条件为'all',显示全部,用于连动菜单
  if(filtersdata[0] == 'all') {
   sel.options[0] = new Option('==查看所有==','all');

   for(i=0; i < data.length; i++) {
    selkey = data[i].split(",")[1];
    selvalue = data[i].split(",")[2];
    sel.options[sel.length] = new Option(selkey,selvalue);
   }

   return;