select的option异常的总结

来源:http://www.ido321.com/1189.html

昨天,在项目中碰到了option显示异常的原因,截图例如以下:

Firefox中用css控制之后效果

chrome和IE中css不奏效

代码:

<div class="controls">
         <select name="ksname" id="ksname">
             <?php
                 while (!!$rowDK = fetchAssoc($resultDK))
                  {
             ?

>
             <optgroup label="<?php echo $rowDK[‘name‘]; ?>">
               <?php
                $resultKS = queryDB("select table_dake.id,table_keshi.sid,table_keshi.name from table_dake,table_keshi
                          where table_dake.name=‘{$rowDK[‘name‘]}‘ and table_keshi.sid=table_dake.id");
                 while(!!$rowKS = fetchAssoc($resultKS))
                 {
               ?

>
                 <option  value ="<?php echo $rowKS[‘name‘]; ?>"><?

php echo $rowKS[‘name‘]; ?></option>

                 <?php
                     </optgroup>
                   }
                 }
                 free($resultDK);
                 free($resultKS);
             ?>
         </select>
     </div>

调试了非常久,在网上也找了方法。终于无果,仅仅要去请教大牛了。

大牛建议我去查看一下源码。是不是样式改变了?这段代码的select部分没有不论什么样式。怎么会多?看了源码之后,样式的确没有多,可是每一个option后面多了一个</optgroup>.又回头看了代码。才明确,我把</optgroup>写在了内循环中,依照我的逻辑,本应该放在外循环。调整之后。一切正常。

所以,调试代码又get了一招:查看原代码

下一篇:90个IT社区等你来挑。!

时间: 2024-11-25 22:49:16

select的option异常的总结的相关文章

IE8下JQuery clone 出的select元素使用append添加option异常解决记录

遇到一个怪现象,由于配置参数是多实例的, 故采用JQuery对模板HTML代码进行clone, HTML代码中包括select标签, 在克隆之后需要对select进行添加option. 在firefox和chrome浏览器上都没有问题,在IE10下也没有问题, 但是在IE8下就出现问题,使用append添加option后,IE8上就显示不出来新添加option. 示例代码如下,对于clone出的第二个select有问题,但是通过打印,发现添加后的option数目是正确的3个. 这个就太令人费解了

有关attribute和property,以及各自对select中option的影响

这个问题老生常谈,但是直到现在我依旧时常会把它搞混.下面列一些各自的特性.   attribute property 设置方法 option.setAttribute('selected', true) option.getAttribute('selected') option.selected = true dom节点表现 会表现在html节点上.打开控制台,可以看到 <option selected=true></option> 不会表现在html中.打开控制台,孤零零的 :

js 操作select和option

js 操作select和option 1.动态创建select function createSelect(){ var mySelect = document.createElement_x("select");          mySelect.id = "mySelect";           document.body.appendChild(mySelect);      } 2.添加选项option function addOption(){ //根

AngularJS下拉列表select在option动态变化之后多出了一个错误项的问题

场景: Select初始化之后,选中select的某个选项 通过AngularJS更新select的选项 错误写法: HTML(使用ng-repeat) <div ng-app="TestApp"> <div ng-controller="TestAppCtrl"> <label>options变化之后会出错:</label> <select ng-model="selectedSite"&g

jquery为select添加option的代码探讨

这是一道讨论"使用jQuery为select添加option选项的最佳代码方法".分析哪一种的写法是最佳方法.在stackoverflow上众说纷纷,下面来看看有哪些写法. 第一种使用for循环 var selectValues = { "1": "test 1", "2": "test 2" }; for (key in selectValues) { if (typeof (selectValues[k

总结jquery中对select和option的基本操作

jQuery获取Select选择的Text和Value:$("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text var checkValue=$("#select_id").val(

select remove option safari 兼容

select 移除某一 option 的 javascript 公司用的代码是 var ddlPrimaryResource = document.getElementById(ddlPrimaryResourceID); ddlPrimaryResource.options[ddlPrimaryResource.selectedIndex].remove(); 这段代码在 chrome 里执行OK ,但是在 safari 里却报错了 TypeError: 'undefined' is not

得到select所有option里的值

得到select所有option里的值 . 2012-02-24 11:04:43|  分类: html|举报|字号 订阅 1://取得所有的option个数document.getElementById('---').options.length 2://取得每个option的ID值document.getElementById('---').options[i].value 3://取得每个option在页面显示的文本document.getElementById('---').option

select的option

最近再做一个新的东西,有一个需求是这样的,后台给过来一批数据,这批数据要放到三个select里面,提供选择:但是第一个选框选过的内容后面就不能再选了,可以隐藏,可以置灰,可以移除......... 最初选择了隐藏的方法,思路是在change事件的时候先让所有的选项全部显示,然后得到另外两个select里面选中的value值,然后隐藏,把最新的也从option里面隐藏,实现方式如 $select.change(function(){ //获取当前选中的选项 var seloption = $(th