参考:
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; //设为默认 } } } }
相关推荐
### 数据动态加载 动态加载数据是Web开发中的常见需求,尤其是在单页应用中,经常需要与后端API进行交互,获取数据后动态更新页面内容。在Vue.js中,通常使用`axios`这个HTTP库来发送请求并处理响应数据。 ### ...
在SSH2(Spring、Struts2、...通过这种方式,SSH2框架可以根据后端数据库动态生成`select`下拉框的选项,使得用户能够在网页上方便地进行选择操作。同时,`rf.sql`文件确保了数据库中的数据准备就绪,便于演示和测试。
例如,可以有一个`getDropdownList(String entityType)`方法,根据传入的实体类型返回对应的下拉框数据。 单元测试在这个过程中扮演了重要角色,确保不论输入什么样的参数,`getDropdownList`都能正确地构建出...
6. **数据动态加载**:如果选项数据是从服务器动态获取的,可以使用Ajax请求加载数据,并在数据返回后动态构建`<option>`元素,再调用`selectpicker('refresh')`方法更新下拉框。 7. **无障碍访问(Accessibility)...
3. **远程数据集**:对于需要从服务器动态加载数据的情况,select2 支持异步数据源,可以实时从服务器获取数据并显示在下拉框中。这使得用户无需预先加载所有数据,降低了页面载入时间,提高了用户体验。 4. **无限...
在实际项目中,可能会结合Java和JSP来处理服务器端的数据,将这些数据传递给前端,用于生成下拉框的选项。例如,使用JSP的EL(Expression Language)和JSTL标签库来动态生成HTML代码。 总的来说,"js select美化...
标签"java js 下拉框"表明了这个话题涉及到的技术栈,其中"java"可能是用来处理后端数据的,而"js"则表示前端使用JavaScript进行交互逻辑处理,"下拉框"则是我们要讨论的核心元素。 在压缩包的文件名列表中,我们...
总结来说,这个实例展示了如何利用Bootstrap和其扩展库`bootstrap-select.js`动态加载下拉框数据。通过AJAX请求获取远程数据,然后使用jQuery操作DOM来构建下拉框选项,最后通过插件提供的方法更新下拉框,实现动态...
6. **动态加载**:对于非常长的选项列表,可以考虑使用懒加载,只在用户滚动到可视区域时加载部分选项,以提高页面性能。 7. **分组选项**:使用`<optgroup>`标签将相关的选项分组,可以减少单个选项的长度,使得...
这可能意味着我们将看到具体的代码片段或步骤,展示如何在用户交互时,如点击、输入等事件触发下,通过AJAX请求获取数据,并将这些数据动态地填充到下拉框中。 **标签解析:** - **ajax**:这个标签提示我们,解决...
本文通过一个使用jQuery实现的示例,详细讲解了如何动态加载select元素中的下拉列表项,从而允许根据不同的业务场景或用户交互来加载不同的数据项。 ### 知识点一:静态与动态下拉列表的区别 在传统的Web页面设计...
之后,在POST请求的回调函数中,将查询到的数据动态地拼接到下拉框中。 在拼接数据之前,需要添加一个value值为空的选项,这是为了预留一个默认的请选择选项,以便用户可以选择默认值,而不是默认选中第一个拼接的...
然后在JavaScript中解析这些数据,动态创建包含图片的DOM元素。 4. **jQuery实现**: 描述中的`$("#***").select()`可能是引用了jQuery的`select`方法,但这在jQuery中并不存在。可能是指使用jQuery来操作`select`...
6. **性能优化**:对于大数据量的下拉框,为了避免一次性加载所有选项导致页面卡顿,可以采用懒加载策略,只在用户滚动到可视区域时加载相应的选项。 7. **兼容性和适配**:确保组件在各种主流浏览器上表现一致,并...
3. **自定义数据源**:你可以通过 AJAX 或 JavaScript 数组为 `Select2` 提供动态数据,使得选项不再局限于静态的 HTML 内容。 4. **可扩展性**:`Select2` 的API允许开发者添加自定义行为,如监听事件、修改默认...
例如,当用户在第一个下拉框中做出选择时,我们可以发送一个AJAX请求到服务器,获取与之相关的第二个下拉框的选项数据,然后动态渲染到页面上: ```javascript fetch('api/relatedOptions?selectedValue=' + this....
在某些场景下,我们需要动态地填充表格中的 select 下拉框选项,以实现更灵活的数据展示和交互。本篇文章将详细介绍如何在 jQGrid 中动态填充 select 下拉框的选项值。 首先,让我们理解一下 jQGrid 的基本结构。...
本篇文章将深入探讨如何在用户选择Select下拉框的选项后触发事件,并获取选中项的相关信息,以便在前端展示变化或者进行进一步的数据处理。 首先,我们需要了解基本的HTML Select元素和它的相关属性。`<select>`...