1

さて、テキストボックスにデフォルト値を設定する方法を知っています。

<input type='text' size="2" name="QuantityAlbum1" id="QuantityAlbum1" value='1' onblur="chkValue('album1', this.value)"/>
<input type='text' size="2" name="QuantityAlbum2" id="QuantityAlbum2" value="1" onblur="chkValue('album2', this.value)"/>

たとえば、最初のテキストボックスの値を3に変更すると、メソッドが呼び出されて新しい価格が表示されますが、メソッド内で2番目のアイテムに数量があり、既存の価格に追加されているかどうかを確認したいと思います。だからこれは私の論理:

function newPriceTotal(chkObject, quantity){
      var newPrice=0;
      var albumQ1 = document.getElementById("QuantityAlbum1").innerHTML;
      var albumQ2 = document.getElementById("QuantityAlbum2").innerHTML;
        switch (chkObject)
        {

             case "album1":
             {
              newPrice =  4.99 * Number(quantity);
              if (albumQ2 != "")
                {
                  newPrice = newPrice + (8.99 * albumQ2)
                } 
                break;
              }     
        }  //end of switch
    return newPrice; 
}

したがって、次の場所に到達するまで問題はありません。

if (albumQ2 != "")

ここに到達すると、デフォルト値が1に設定されていても、空の文字列が返され、テキストボックスにデフォルト値の1が表示されます。

なぜこれが発生しているのか、どうすれば修正できるのか、誰かに説明できますか?

4

1 に答える 1

0

.innerHTMLの代わりに.valueを使用できます。

于 2012-08-11T19:45:14.307 に答える