1

一部のラジオ ボタンの値に基づいて div を非表示または表示しようとしています。css はデフォルトで div を display='none' に設定します

ここに入力があります

<input type="radio" id="payment_type" value="cash" checked="checked" name="payment_type" onchange="showhideFinancing(this.value);"/>&nbsp;Cash/Debit
<input type="radio" id="payment_type" value="cheque" name="payment_type" onchange="showhideFinancing(this.value);"/>&nbsp;Cheque
<input type="radio" id="payment_type" value="visa" checked="checked" name="payment_type" onchange="showhideFinancing(this.value);"/>&nbsp;VISA
<input type="radio" id="payment_type" value="mc" name="payment_type" onchange="showhideFinancing(this.value);"/>&nbsp;Mastercard
<input type="radio" id="payment_type" value="financing" name="payment_type" onchange="showhideFinancing(this.value);"/>&nbsp;Financing

これがdivです:

<div id="financing">
...
</div>

私のJavascript fnは次のようになります:

function showhideFinancing(payment_type) {
    if (payment_type == "financing") {
        document.getElementById("financing").style.display = 'block';
    } else {
        document.getElementById("financing").style.display = 'none';
    }
}

Firebug は、getElementById が定義されていないことを示しています。ありがとうございます。

4

4 に答える 4

1

「getElementById」が定義されていないと言っている可能性があると私が考える唯一の理由は、サンプルをここに掲載しているときに元のコードにタイプミスをした場合です (大文字と小文字を区別することは常に私を取得するものです)または、ページ内の別の場所で何らかの方法でドキュメントを再定義した場合。

于 2010-06-18T15:22:26.863 に答える
0

そこにあるコードは、行ごとにSafariで機能します。getElementByID は、DOM のルート実装の一部のようなものです。定義されていない場合は、Firefox に問題があると思います。

http://firefiter.com/temp.php

于 2010-06-18T15:21:36.533 に答える
0

ここではすべてがしっかりしているようです。getElementById() が定義されていない場合は、おそらくタイプミスか、括弧の不一致などの構文の欠落が考えられます。関数が定義されているスクリプトタグまたはファイルに注目してください。あなたの問題はそこにあると確信しています。

そのコードをもっと投稿して、より多くの助けを得てください。

于 2010-06-18T15:19:16.290 に答える
0

うーん、ID は正しいですか? 重複をチェックします。実際のコードを見ないとわかりません。

于 2010-06-18T15:16:08.497 に答える