在IE 6 unwards中添加<option> </option>

时间:2009-01-28 08:01:55

标签: javascript internet-explorer-6

我在下面用JavaScript编写代码,从开启窗口向选择列表中添加一个新选项:

function updateSelectList()
{
    var field = opener.document.objectdata.ticketPersonId;
    if (true && opener && field)
    {
        var val = document.createElement('option');
        var title = document.objectdata.titleId.options[document.objectdata.titleId.selectedIndex].text;
        val.text =  title + ' ' + document.objectdata.firstName.value + ' ' + document.objectdata.lastName.value + ':' + document.objectdata.username.value;    
        val.value = null;

        val.selected = true;
        field.add(val, null);
    }
}

在Firefox,谷歌Chrome等中运行良好但不是IE 6 :-( 请告知我如何在IE 6中完成这项工作。

2 个答案:

答案 0 :(得分:1)

这是我的代码段:

if (oldopt!=null || !horus.brokenDOM)
  select.add(newopt, oldopt);
else
  newopt=options[options.length]=new Option(newopt.text, newopt.value, false, false);

horus.brokenDOM的定义留给读者:)

IIRC,我在使用IE的上下文中使用预定义的Option对象(通常从另一个选择框中拉出)时遇到了一些困难,因此创建了就地对象。

答案 1 :(得分:0)

function updateSelectList()
{
    var field = opener.<%= updatelist %>;
    if (<%= called %> && opener && field)
    {
        var val = opener.document.createElement('option');
        var title = document.objectdata.titleId.options[document.objectdata.titleId.selectedIndex].text;
        val.text =  title + ' ' + document.objectdata.firstName.value + ' ' + document.objectdata.lastName.value + ':' + document.objectdata.username.value;    
        val.value = <%= thePerson != null ? thePerson.getId() : null %>;
        val.selected = true;
        try
        {
            field.add(val, null);
        }
        catch(error)
        {
            field.add(val, 0);
        }
    }
}

这种缝合起作用。真是个使命!