3

みなさん、こんにちは私はこのコードを持っています

function computeChange(){
var change;
var amountDue = parseFloat(document.getElementById("amountDue").value);
var amountReceive = parseFloat(document.getElementById("amountReceive").value);
change = amountReceive - amountDue;
document.getElementById('amountChange').innerHTML = change;
}



<td>Total Amount</td>
<td>Php:<span id="amountDue"><?php echo $sum; ?></span></td>
</tr>
<tr>
<td>Amount Paid</td>
<td><input type="number" id="amountReceive" required="required" maxlength="4" size="4" onKeyUp="computeChange()"></td>
</tr>
<tr>
<td>Change</td>
<td>Php:<span id="amountChange"></span></td>
</tr>

合計金額は
支払額の小数ですinputtype= text

したがって、問題は、テキストボックスに何かを入力すると、変更時のスパンが大きくなることです。NaN

4

4 に答える 4

9
parseFloat( document.getElementById("amountDue").value );

技術的に同等です

parseFloat( undefined );

NaNspan 要素には という名前のプロパティがないため、値が得られ.valueます。多分あなたが欲しかった.innerHTMLですか?

parseFloat( document.getElementById("amountDue").innerHTML );
于 2012-12-03T02:35:42.357 に答える
5

#amountDue<span>要素なので、valueプロパティはありません。

.innerHTMLその内容を取得するために使用します。

var amountDue = parseFloat(document.getElementById("amountDue").innerHTML);
于 2012-12-03T02:34:51.577 に答える
2

これは値を返しません:

      document.getElementById("amountDue").value

asamountDueは HTML 入力要素ではありません。

以下を試してください:

     document.getElementById("amountDue").innerHTML;

すなわち

    var amountDue = parseFloat(document.getElementById("amountDue").innerHTML);
于 2012-12-03T02:36:34.683 に答える
1

valueamountDue の が を返しundefinedているため、parseFloat が代わりにNaN Useを返していますinnerHTML。この行を変更

var amountDue = parseFloat(document.getElementById("amountDue").value);

var amountDue = parseFloat(document.getElementById("amountDue").innerHTML);
于 2012-12-03T02:48:56.600 に答える