0

以下のコードは で機能しませIEん。誰か助けてくれませんか?

onclick="x.value=parseInt(b.value*d.value*c.value)+parseInt(a.value)

他のすべてのブラウザでは、問題なく計算を実行して出力を提供しているように見えますが、IEでは何をしても出力は0値のままです。以下は、問題をより適切にターゲットにするためのフォーム全体です。

<form id="mainselection">
        <h6>Transfer Fee Calculator</h6>    
<select name="a">
    <option value="0">Select</option>
    <option value="0">Dalaman</option>
    <option value="30">Bodrum</option>
</select>
<select name="b">
    <option value="0">Resort</option>
    <option value="10">Marmaris</option>
    <option value="12">Icmeler</option>
    <option value="18">Turunc</option>
</select>
<select name="c">
    <option value="0">Pax</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>  
</select>
<select name="d">
    <option value="1">One Way</option>
    <option value="2">Return</option>
</select>
<br />
<span class="total">Total:</span><output name="x" for="a b c ">0</output>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="currency">£</span>
<br />
<br />
<input type="button" value="Calculate" class="cal-but" onclick="x.value=parseInt(b.value*d.value*c.value)+parseInt(a.value)">
<input type="button" value="Book Now" class="book" onclick="window.location='reservation.html'">

4

1 に答える 1

1

最初に言っておきたいのは、これはIE のバグではないということです。これは、Javascript コードで要素名にアクセスする非標準の方法を使用していることに関係しています。

問題は、要素のname属性をグローバル Javascript 変数として使用していることです。これは推奨される方法ではありません (決して推奨されたことはありません)。一部のブラウザーは下位互換性の理由からこれをサポートしていますが、それはブラウザーの将来のバージョンで引き続き動作するという意味ではありません。これは標準ではないため、使用しないでください。

Javascript で個々の要素に直接アクセスする正しい方法は、getElementsById()メソッドを使用することです。これにより、現在のコードにない優れたクロスブラウザー互換性が得られます。

ソリューション:

  • id='x'ステップ 1: の隣に を追加しますname='x'。そして、現在名前でアクセスしている他の要素についても同じことを行います

  • ステップ 2:x要素の名前などに変数を使用している場合は、変数名を に置き換えますdocument.getElementById('x')

    はい、それははるかに長い道のりですが、それが正しい方法です。

それはあなたのために問題を解決します。

于 2013-03-24T16:01:10.150 に答える