我正在使用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元素
答案 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。