0

フォームのテキスト入力フィールドの一部を非表示にする次の関数があります。非表示にしたいすべてのフィールドは、div 'site2' に含まれています

<script language="Javascript">

function showHide(value) {
if (value=='yes') {
        document.getElementById(site2).style.display = "none";
        document.getElementById(site2).style.display = "block";
        document.add.addSite2Line1.disabled=true;
    }
    else if (value=='no') {
        document.getElementById(site2).style.display = "inline";
        document.getElementById(site2).style.display = "none";
    }
}
}
    </script>

ドロップダウンボックスが作成されました。いいえが選択されたときに表示されるはずです

<label><span>Single Site?</span><Select name="field" onchange="showHide(this.selectedIndex);"></label>
 <Option value="yes">yes</option>
 <Option value="no">no</option>
 </Select><br /><br /><br /><br />

ただし、ページを実行しても何も起こりません

4

2 に答える 2

5

selectedIndexを渡していますが、それが値であるかのようにチェックしています...代わりにこれを試してください:

<Select name="field" onchange="showHide(this.value);"></label>

または、処理する前にアイテムから値を取得してみてください。

function showHide(selectedIndex) {
    var value = document.getElementById("field").options[selectedIndex].value;

    if (value=='yes') {
        document.getElementById(site2).style.display = "none";
        document.getElementById(site2).style.display = "block";
        document.add.addSite2Line1.disabled=true;
    }
    else if (value=='no') {
        document.getElementById(site2).style.display = "inline";
        document.getElementById(site2).style.display = "none";
    }
}

getElementById(site2)vsに関する Slanec のコメントgetElementById("site2")も有効です。ページの残りの部分を見ないとわかりませんが、Javascript で宣言された site2 という名前の変数がない場合は、追加のエラーが発生する可能性があります。

于 2012-07-28T05:20:59.263 に答える
-1

その非常に単純で、前に余分な中括弧を削除する必要があります

function showHide(value) {
if (value=='yes') {
        document.getElementById(site2).style.display = "none";
        document.getElementById(site2).style.display = "block";
        document.add.addSite2Line1.disabled=true;
    }
    else if (value=='no') {
        document.getElementById(site2).style.display = "inline";
        document.getElementById(site2).style.display = "none";
    }
}
于 2012-07-28T06:48:01.723 に答える