更新范围是正常的,更新输入结果为'NaN'

时间:2011-10-20 14:44:18

标签: javascript jquery nan

我正在使用jquery和一个从雅虎获取最新汇率的PHP脚本来转换价格!

我的更新功能正在处理我可以使用.text()更新的元素(例如span元素),但是一旦我尝试设置输入元素的.val(),它就会收到'NaN' - 甚至虽然我对两者都使用相同的值。

function frmtCurrency(ele,price) {
    // round the currency to the nearest .05
    price *= 2.0;
    price = price.toFixed(1) / 2.0;
    price = price.toFixed(2);

    //alert (parseInt(price)) here returns the amount, so it IS a number

    // check what type of element 'ele' is
    var element = (ele.get(0).tagName);

    if (element != 'INPUT') {
        ele.text(price+code); ALWAYS OK eg 10.55
    } else {
        ele.val(price); // ALWAYS NaN
    }
};

任何人都可以告诉我为什么我无法更新输入字段但我可以更新span元素

1 个答案:

答案 0 :(得分:2)

function frmtCurrency(ele,price) {
    // round the currency to the nearest .05
    price = parseFloat(price);
    if(isNaN(price)) { price = 0 }
    price *= 2.0;
    price = price.toFixed(1) / 2.0;
    price = price.toFixed(2);
    ele.val(price);
}

frmtCurrency($('input'), '');

你可能会在软件中的某个位置传递一个字符串或错误,给你一个NaN。在这里你可以看到我传递一个空字符串,并且我添加了一个句柄,使其在没有给出实数时显示为0.00。

http://jsfiddle.net/kuroir/DaHSA/1/