wndong 2016-08-03
参考:
1.示例参考:http://www.w3schools.com/jsref/coll_select_options.asp
2.js中select下拉框常用操作方法:http://www.php100.com/html/program/jquery/2013/0905/5931.html
3.js select option对象小结: http://www.jb51.net/article/44657.htm
4.js如何控制select标签哪个被选中:http://zhidao.baidu.com/link?url=z4hDFftJQ66TX4u8yjRQlnp5tmaCunK08El2Q3s0z_HDkO75FAmDb4asDQ8kOJukP4jJx-IJUJcuOmpJjaHnRa
加载DAO数据:(静态)
<% List<CardTypeGroup> cardTypeGroups = CardTypeGoupDAO.gerCardTypeGroup(); Iterator<CardTypeGroup> itCardTypeGroup = cardTypeGroups.iterator(); String cardTypeGroupIdString = ""; while(itCardTypeGroup.hasNext()){ CardTypeGroup ctg = itCardTypeGroup.next(); cardTypeGroupIdString += ctg.getCardTypeGroupId() + ","; } cardTypeGroupIdString = cardTypeGroupIdString.substring(0,cardTypeGroupIdString.length()-1); List<Denomination> denominations = DenominationDAO.gerDenomination(); Iterator<Denomination> itDenomination= denominations.iterator(); String denominationIdString = ""; while(itDenomination.hasNext()){ Denomination den = itDenomination.next(); denominationIdString += den.getDenominationId() + ","; } denominationIdString = denominationIdString.substring(0,denominationIdString.length()-1); List<Operator> operators = OperatorDAO.gerOperator(); Iterator<Operator> itOperator = operators.iterator(); String operatorIdString = ""; while(itOperator.hasNext()){ Operator op = itOperator.next(); operatorIdString += op.getOperatorId() + ","; } operatorIdString = operatorIdString.substring(0,operatorIdString.length()-1); %>
动态加载数据:
function selectOptions(){ console.log("selectOption"); var cardTypeGroup_selectObj = document.getElementById("select_cardTypeGroupId"); var denomination_selectObj = document.getElementById("select_denominationId"); var operator_selectObj = document.getElementById("select_operatorId"); var cardTypeGroup_datas = "<%=cardTypeGroupIdString%>".split(","); var denomination_datas = "<%=denominationIdString%>".split(","); var operator_datas = "<%=operatorIdString%>".split(","); //console.log("length : " + cardTypeGroup_selectObj.options.length); if(cardTypeGroup_selectObj.options.length == 1){ for (var i = 0; i < cardTypeGroup_datas.length; i++) { cardTypeGroup_selectObj.options.add(new Option(cardTypeGroup_datas[i], cardTypeGroup_datas[i])); //("text","value") } } if(denomination_selectObj.options.length == 1){ for (var i = 0; i < denomination_datas.length; i++) { denomination_selectObj.options.add(new Option(denomination_datas[i], denomination_datas[i])); } } if(operator_selectObj.options.length == 1){ for (var i = 0; i < operator_datas.length; i++) { operator_selectObj.options.add(new Option(operator_datas[i], operator_datas[i])); } } }
点解添加按钮后调用:
function newExchangeRate(cell){ clearReqMsg(cell); var table = document.getElementById('tab_exchangeRate'); var newRow = table.insertRow(-1); var td0 =newRow.insertCell(0); td0.innerHTML = '<select id="select_cardTypeGroupId" name="cardTypeGroupId" style="width: 100px;" onfocus="selectOptions()" >' +'<option value="">-- select --</option>' +'</select>'; var td1 =newRow.insertCell(1); td1.innerHTML = '<select id="select_denominationId" name="denominationId" style="width: 100px;" onfocus="selectOptions()" >' +'<option value="">-- select --</option>' +'</select>'; var td2 =newRow.insertCell(2); td2.innerHTML = '<select id="select_operatorId" name="operatorId" style="width: 100px;" onfocus="selectOptions()" >' +'<option value="">-- select --</option>' +'</select>'; var td3 =newRow.insertCell(3); td3.innerHTML = '<input type="text" name="exchangePriceHkd" style="width: 60px;">'; var td4 =newRow.insertCell(4); td4.innerHTML = '<input type="button" value="Add" onclick="exchangeRateAction(this)"> ' +'<input type="button" value="Delete" onclick="deleteNew(this)">'; }
点击ADD后:
function exchangeRateAction(cell){ var url = "admin"; var action = "adminAction=exchangeRate"+cell.value; var formname = "exchangeRateForm"; console.log("cell value : " + cell.value); if(cell.value.toUpperCase()=="DELETE"){ action += "&cardTypeGroupId="+getRow(cell).cells[0].innerHTML; action += "&denominationId="+getRow(cell).cells[1].innerHTML; action += "&operatorId="+getRow(cell).cells[2].innerHTML; }else{ var row=getRow(cell); var cellsLength = getTable(cell).rows.item(0).cells.length; for(var i=0;i<cellsLength-1;i++){ action+="&"+row.cells[i].childNodes[0].name+"="+row.cells[i].childNodes[0].value; } } if(window.confirm('Confirm to '+ cell.value+' ?')){ xmlhttpPost(cell,url,action); }else{ return false; } }
注:
row.cells[i].childNodes[0].name : 获得select标签的name属性值 row.cells[i].childNodes[0].value : 获得select标签的value属性值
补充:
function getRowIndex(cell) { return cell.parentNode.parentNode.rowIndex; } function getTableId(cell) { return tableId = cell.parentNode.parentNode.parentNode.parentNode.id; } function getTable(cell) { return document.getElementById(getTableId(cell)); } function getRow(cell) { //alert(getTable(cell).rows[getRowIndex(cell)].innerHTML); return getTable(cell).rows[getRowIndex(cell)]; }
额外学习:
获得select所选项:
var cardTypeGroup_index = cardTypeGroup_selectObj.selectedIndex; var cardTypeGroupId_select_val = cardTypeGroup_selectObj.options[cardTypeGroup_index].value;
补充2:
获得当前已经选定值:
1.获得jsp表格中的值:
serviceSel = editRow.cells[3].innerHTML;
2.
function service_selectOption(){ var objSelect = document.getElementById("select_service"); var meta = "local,all,international"; var datas = meta.split(","); if(objSelect.options.length == 1){ objSelect.options.remove(0); for (var i = 0; i < datas.length; i++) { objSelect.options.add(new Option(datas[i],datas[i])); if (objSelect.options[i].value == cardTypeGroupNameSel) { objSelect.options[i].selected = true; //设为默认 } } } }