-
javascript 的问题,在ie6中不能正常得到option 的值,FF中无问题,请大家帮帮我20
jsp页面上有2个select输入框,分别是:<select onChange="onMethodSelected()" id="methodselect" > <option value="1">FILE</option> <option value="0">DATABASE</option> </select> <select id="tableNames" > </select>
有两个选项,现在需要,如果第一个选中DATABASE 第二个选择框就应该读出数据库的表名。
结果是,在IE中显示都一切正常,也能读出,也能选择表名,但是就是document.getElementById("tableNames").value 是空值。
ajax的部分代码:
通过,appendChild加进第二个select中去的var tableList = document.getElementById("tableNames"); var tableNames = xmlHttp.responseXML.getElementsByTagName("tableName"); var option = null; for (var i = 0; i < tableNames.length; i++) { option = document.createElement("option"); option.appendChild(document.createTextNode(tableNames[i].firstChild.nodeValue)); tableList.appendChild(option); }
这样在第一个select onChange调用的onMethodSelected()中document.getElementById("tableNames").value得不到第二个select中选择的值,这是为什么呢?
alert(document.getElementById("tableNames"))是[object]
alert(document.getElementById("tableNames").value)啥都没有
在FireFox中一切正常,IE6中就不行,看了网上说的IE中id 和name的bug,但是我这里变貌似也没有冲突的id 和name 啊,,,郁闷中,求大家帮忙
问题补充:
但是写一个测试文件就可以得到比如<html> <body> <script type="text/javascript"> function sayOption(){ var word=document.getElementById("aaa").value; alert(word) } </script> <select id="aaa"> <option value="1">1</option> <option value="2">2</option> </select> <input type="button" onClick="sayOption()"/> </body> </html>
是不是appendchild 的原因呢,如果用appendchild 怎么能得到option的值
问题补充:
我找到原因了,如果有朋友也遇到我的问题可以参考我的这个,问题就出在for (var i = 0; i < tableNames.length; i++) { option = document.createElement("option"); option.appendChild(document.createTextNode(tableNames[i].firstChild.nodeValue)); tableList.appendChild(option);
这个只是append了一个child 这样就相当于只加入了option的显示,如果对应html的源吗应该就是:<select ....> <option>读出的表名1</option> <option>读出的表名2</option> </select>
这样是不行的,因为没有并没有value属性,
所以要在前面的代码中加入
option.setAttribute("value",tableNames[i].firstChild.nodeValue);
如下:for (var i = 0; i < tableNames.length; i++) { option = document.createElement("option"); option.appendChild(document.createTextNode(tableNames[i].firstChild.nodeValue)); option.setAttribute("value",tableNames[i].firstChild.nodeValue); tableList.appendChild(option);
这样就可以通过value取到值啦!
这也说明了firefox比IE聪明很多了。。。。我想firefox中应该就是看没有value属性的话他就默认吧显示的文本当作选项的value吧
问题补充:
谢谢关注的朋友,谢谢!2009年8月31日 14:09
2个答案 按时间排序 按投票排序
-
这样应该能通过
var xmlDoc=req.responseXML.documentElement;
var xSel=xmlDoc.getElementsByTagName('select');
var select_root=document.getElementById('list1');
select_root.options.length=0;
if(xSel.length!=0)
{
for(var i=0;i<xSel.length;i++)
{
var xValue=xSel[i].childNodes[0].firstChild.nodeValue;
var xText=xSel[i].childNodes[1].firstChild.nodeValue;
try{
select_root.options[i]=new Option(xText,xValue);
}catch(e){
}
}
}2009年8月31日 14:56
-
ie下取select的选中值不是这么取的
var tableList = document.getElementById("tableNames");
这样得到选中的值tableList.options[tableList .options.selectedIndex].value2009年8月31日 14:17
相关推荐
Javascript中有很多语句在不同浏览器中显示不同,或者不能显示,这里主要介绍了JS在IE和FF中的差异。
ie6 ie7 ff浏览器兼容 border:2px solid #00f; /*IE、ff的属性*/ border:2px solid #090\9; /* IE6/7/8的属性 */ border:2px solid #F90\0; /* IE8支持 */ *border:2px solid #F00; /* IE6、7支持 */ _border:2...
JavaScript 瀑布流 吸顶 兼容IE FF Chrome
ie不执行javascript修复ie不执行javascript修复ie不执行javascript修复 当IE不能正常运行时,打开该工具就可以了,自动修复
本文档内容涵盖:IE6升级到IE9过程中Javascript, DOM, HTML, CSS等方面的变化和调整。 概述 2 第一章:HTML 3 第一节:IE7-IE8更新 3 1. 如果缺少结束标记的 P 元素后跟 TABLE、FORM、NOFRAMES 或 NOSCRIPT 元素,会...
javascript 获取select ->option中id、value、label属性及<option></option>中内容
在IE中的JS调试一直是影响我们开发效率的一大问题,本文就介绍如何在IE中调试JS
解决developer tools在IE中不起作用的问题 Developer Tools是IE浏览器中的一款强大的开发工具,它提供了许多实用的功能,例如调试、检查元素、网络请求等,但是在某些情况下,Developer Tools可能无法正常工作,...
在本文中,我们讨论了如何解决 JavaScript Option onclick 事件在 IE 浏览器中的问题,并实现了兼容 IE 和 Firefox 浏览器的解决方案。通过使用 JavaScript 事件模型和事件监听器,我们可以正确地捕捉 Option 元素的...
IE不能运行JavaScript的解决方法
目前已知的问题是 IE4 不能正常工作,不过我们开发时主要测试的 IE 版本是 5.5,6 和 7,IE 4 其实可以不考虑了。 Mutiple IE 确实是一个非常好的测试工具,现在大部分的人都在使用IE6,而IE7也也在慢慢的成为一种...
目前已知的问题是 IE4 不能正常工作,不过我们开发时主要测试的 IE 版本是 5.5,6 和 7,IE 4 其实可以不考虑了。 <br>Mutiple IE 确实是一个非常好的测试工具,现在大部分的人都在使用IE6,而IE7也也在慢慢的...
解决 Ajax 返回 innerHTML 中 JavaScript 不能运行问题 在实际应用中,我们经常会遇到使用 Ajax 返回某一个网页的内容到模板页面的某一个 `<div>` 标签中显示的操作。如果返回的值仅仅是文本类数据,不会影响模板...
IE启用javascript IE启用javascript IE启用javascript IE启用javascript IE启用javascript
IE与FF的兼容问题 IE浏览器和火狐浏览器兼容问题——CSS篇 IE浏览器和Firefox(火狐)浏览器兼容性——Javascript篇
在开发过程中,开发的Javascript可能存在在不同的浏览器之间不能正常运行的问题,这个文档很好的说明了IE和Mozilla中的兼容性问题,希望能有点帮助。
总结javascript在IE和Firefox中兼容性问题
现有代码中存在许多 document.formName.item("itemName") 这样的语句,不能在 MF 下运行 (2)解决方法: 改用 document.formName.elements["elementName"] (3)其它 参见 2 2. 集合类对象问题 (1)现有问题: 现有代码...
3. SELECT 元素覆盖问题:IE6-IE7 中存在 SELECT 元素不能被 div 覆盖的问题。解决办法是,使用 position 属性来解决这个问题。 4. CSS 样式大小写敏感:IE6-IE7 中 CSS 样式区分大小写。解决办法是,确保所有 CSS ...