0

OK、それは確かに本当に奇妙な質問になるでしょうが、それは本当に私に起こりました.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 では動作しないのはなぜですか?...

select タグから「Other」オプションを選択すると、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 に答える