-3

我有以下代码SWITCH以防万一:

case 4:
      inp = document.createElement('SELECT');
      inp.id = "usrNameAttrListSel";
       var optStr = "";
         for (var i = 0; i < usrNameAttrFmts.length; i++) {
           optStr += "<option value='"+i+"'>"+usrNameAttrFmts[i].displayStr+"</option>";
           }
        optStr += "<option value='-1'>Other...</option>";
        inp.innerHTML = optStr; 

....

上面的代码在 FF 和 Chrome 上运行良好。

而在 IE 中,功能不正常。

原因:

我添加了一个警报 - alert(inp.innerHTML)。警报的实际结果应该是:

<option value="0">User-name</option>
<option value="1">Domain\User-name</option>
<option value="2">Domain/User-name</option>
<option value="3">User-name@Domain</option>
<option value="4">SonicWALL Aventail</option>
<option value="-1">Other...</option>

但在 IE 中,我得到了,

User-name</option>
<option value="1">Domain\User-name</option>
<option value="2">Domain/User-name</option>
<option value="3">User-name@Domain</option>
<option value="4">SonicWALL Aventail</option>
<option value="-1">Other...</option>

它省略了, <option value="0">. 有什么选择吗?

提前致谢。

  • 克里希纳
4

2 回答 2

0

在您的代码中看不到太多可能出错的地方,但您可以尝试在 HTML 属性中使用双引号:

 optStr += '<option value="' + i + '"> ...

或者

 optStr += "<option value=\""+i+"\">" ...

也许这有帮助。

于 2013-11-12T08:06:33.003 回答
0

用这个 :

案例4:
      inp = document.createElement('SELECT');
      inp.id = 'usrNameAttrListSel';
         for (var i = 0; i < usrNameAttrFmts.length; i++) {
           tmp = document.createElement('option');
           tmp.innerHTML = usrNameAttrFmts[i].displayStr;
           tmp.value = i;
           inp.appendChild(tmp);
        }
         tmp = document.createElement('option');
         tmp.innerHTML = '其他';
         tmp.value = -1;
         inp.appendChild(tmp);

祝你好运。

于 2013-11-12T07:59:37.187 回答