日期:2014-05-16 浏览次数:20417 次
//得到四个对象 function initVars() { //输入文本框 inputField = document.getElementById("salesorder_deladdress"); //层中的表格 nameTable = document.getElementById("name_table"); //下拉的层 completeDiv = document.getElementById("popup"); //表格中的表主体 nameTableBody = document.getElementById("name_table_body"); } function findNames(){ initVars(); if(inputField.value.length > 0){ SalesOrderEdit.getAddressName( document.getElementById("receivingunit_id").value,inputField.value,callback); }else{ clearNames(); } } // 回调函数 function callback(the_names){ //清除表格原有的内容 clearNames(); var size = the_names.length; if(size == 0) { document.getElementById("popup").style.border = "none"; } else { //设置表格的位置 setOffsets(); //单元格的行,列,文本节点 var row, cell, txtNode; for (var i = 0; i < size; i++) { //名字的内容 var nextNode = the_names[i]; //建立一行 row = document.createElement("tr"); cell = document.createElement("td"); //匿名函数 cell.onmouseout = function() {this.className = 'mouseOver';} ; cell.onmouseover = function() {this.className = 'mouseOut';} ; //设置单元格的属性 cell.setAttribute("bgcolor", "#FFFFFF"); cell.setAttribute("border", "0"); //点击,选到文本框中 cell.onclick = function() {populateName(this);}; txtNode = document.createTextNode(nextNode); //文本加到单元格 cell.appendChild(txtNode); //单元格加到表格行 row.appendChild(cell); //行加到表格 nameTableBody.appendChild(row); } } } function setOffsets() { //文本框对象的可见宽度 var end = inputField.offsetWidth; //文本框 var left = calculateOffsetLeft(inputField); //层的顶部位置 var top = calculateOffsetTop(inputField) + inputField.offsetHeight; //设置层的位置 completeDiv.style.border = "black 1px solid"; completeDiv.style.left = left + "px"; completeDiv.style.top = top + "px"; //表格的宽度 nameTable.style.width = end + "px"; } function calculateOffsetLeft(field) { return calculateOffset(field, "offsetLeft"); } function calculateOffsetTop(field) { return calculateOffset(field, "offsetTop"); } //计算位置的函数:元素,属性 function calculateOffset(field, attr) { var offset = 0; while (field) { //文本框[属性],这种写法得到当前元素相对于父元素的偏移值 offset += field[attr]; field = field.offsetParent; } return offset; } function populateName(cell) { //选中的单元格的值放到文本框中 inputField.value = cell.firstChild.nodeValue; clearNames(); } function clearNames()