0
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"         
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     <html>
    <head>
    <meta http-equiv="Cache-control" content="no-cache">
    <meta http-equiv="Pragma"  content="no-cache">
    <meta http-equiv="Expires" content="-1">

        <Script language = JavaScript>
            function addOptionList(selectbox,text,value )
            {
                var optn = document.createElement('OPTION');
                optn.text = text;
                optn.value = value;
                selectbox.options.add(optn);
            }
            function removeOptionList(listbox,i){
                listbox.remove(i);
            }
            function addOption_list(fromvar,tovar){ 
                for(i=fromvar.options.length-1;i>=0;i--)    {
                    var userlist=fromvar;
                    if(fromvar[i].selected){
                        addOptionList(tovar, fromvar[i].value, fromvar[i].value);
                        removeOptionList(userlist,i);

                    }
                }
            }

        </Script>

    <table align='center'>
        <tr>
            <td ><select multiple name='userlist' id='userlist' >
                <option value='aaa'>aaa</option>
                <option value='bbb'>bbb</option>                
            </select></td>
            <td align='center' valign='middle'>
                <input value='--&gt;'  
                     onClick='addOption_list(userlist,pouser);' type='button'>
                <br><input value='&lt;--' 
                     onClick='addOption_list(pouser,userlist);' type='button'></td>
            <td><select multiple  name='pouser' id='pouser'>
                <option id='test' value='ccc'>ccc</option>              
            </select></td>
        </tr>
    </table>
</body>
</HTML>

我正在使用上面的代码从左侧框中选择一个名称并将其移动到右侧框。该代码在带有/不带有 DOCTYPE 的 IE 中工作。但是当我使用 DOCTYPE 时,它在 Firfox 中停止工作。我花了很多时间在上面,但仍然无法弄清楚问题所在。另外,我是 Javascript 的新手,所以请用下面的代码解释我的问题(当我使用 DOCTYPE 时)。在此先感谢您的帮助!!

4

2 回答 2

1

您依赖于在窗口中显示为全局属性的 id 元素(例如userlist)。Firefox 仅在 quirks 模式下执行此操作,这就是文档类型很重要的原因。

于 2012-04-06T01:42:10.383 回答
0

您的标记与 DOCTYPE 不匹配。即您没有使用有效的 XHTML 1.0 标记。

将你的代码粘贴到 xhtml 验证器中,它会告诉你哪里出了问题。

于 2012-04-05T19:50:04.470 回答