0

好的,这确实是一个非常奇怪的问题,但它确实发生在我身上,我写了一个在 IE 上工作的 JS,它不在 firefox 或 chrome 上。

我希望有人能告诉我为什么会这样......

我的 HTML 代码是下一个

<h4>What kind of animals do you like the most?</h4>
<select id="animalName" name="animalName">
    <option selected="selected" disabled="disabled">Which animal is it?</option>
    <option value="Cat">Cat</option>
    <option value="Dog">Dog</option>
    <option value="Lion">Lion</option>
    <option value="Other">Other</option>
</select>
<div id="otherAnimalNameDiv">
    <h4>As you picked the other, would you like to write it down to let us know?</h4>
    <input type="text" name="otherAnimalName" size="40" id="otherAnimalName" />
</div>

我的 JS 代码是下一个:

    var animalName = document.getElementById("animalName");
    var animalOtherName = document.getElementById("otherAnimalNameDiv");

    function animalSelect (){
        animalName.onchange = function (){
            if (animalName.options.value == "Other"){
                animalOtherName.style.display = "block";
            }
        };
        animalOtherName.style.display = "none";
    }

window.onload = function () {
    firstNameFunc();
    familyNameFunc ();
    emailAddressFunc ();
    passwordFunc ();
    rewritePasswordFunc ();
    colorPickerFunc ();
    animalSelect ();
    }   

为什么它可以在 IE 上运行,而不能在 Chrome 或 FF 上运行?...

当您从选择标记中选择“其他”选项时,它应该将 div 显示设置为阻止,这会在 IE 上发生,但不会在 FF 或 chrome 上发生。

4

2 回答 2

2

我敢打赌,问题出在您的 if 语句上:

if (animalName.options.value == "Other"){

如果您尝试获取所选选项的值,则应该尝试更多类似的方法:

if (animalName.options[animalName.selectedIndex].value == "Other"){
于 2013-04-11T18:52:02.487 回答
0

您尝试获取选项值是错误的。它应该是:

if( this.options[this.selectedIndex].value == "Other") {
于 2013-04-11T18:51:54.327 回答