计算的JS var的NaN或空值

时间:2012-11-28 01:19:21

标签: javascript parsing

我有以下javascript:

<script type="text/javascript">
function changeBet(parseFloat(bet)) {
var moneyline = parseFloat(<?php echo json_encode($win) ?>);
var gain = parseFloat(bet * moneyline);
document.getElementById("PotentialGain").value = gain;
}
</script>

php变量$ win成功地将var_dump'ed作为一个浮点数。当变量gain = bet时,PotentialGain会按预期显示来自BetAmount的用户输入。这是我的echo'ed php代码:

echo '<tr>';
echo '<td>type="text" name="BetAmount[]" id="BetAmount" onkeyup="changeBet(this.value);" ></td></tr><tr><td>Potential Gain:<input type="text" name="PotentialGain[]"  id="PotentialGain" ></td></tr><tr><td><input type="Submit" name="send" value="Submit"></td>';
echo '</tr>';

但是,我希望获得(作为PotentialGain值输入)作为用户输入bet * var moneyline

结果是NaN。是否有一个var我没有正确解析以显示正确的增益数值?

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

问题是此行中的语法不正确:

function changeBet(parseFloat(bet)) {

您需要将参数传递给该函数,如下所示:

function changeBet(bet) {

然后,当你调用函数时,你可以评估你想通过parseFloat发送的任何参数:

changeBet(parseFloat(strBet));

答案 1 :(得分:2)

您不能将函数调用放在需要参数名称的位置。

function changeBet(bet) {
    bet = parseFloat(bet);
    // rest of code
}

答案 2 :(得分:0)

以下是我使用的最终javascript:

<html>
<script type="text/javascript">
function changeBet(bet) {
var moneyline = <?php echo $win ?>;
var gain = (bet * moneyline).toFixed(2);
document.getElementById("PotentialGain").value = gain;
}
</script>
</html>

我的最后一点注意事项是:1。记住将javascript函数放在代码之后用你的php caclculations。 2.感谢所有澄清parseFloat的人如果你知道var是int(或者我的情况下是double),那么就没有必要了。 3.感谢所有澄清parseFloat的人都不属于函数参数。

希望这可以帮助其他人!