Обновление диапазона в порядке, обновление результатов ввода в 'NaN' - PullRequest
1 голос
/ 20 октября 2011

Я конвертирую цены с помощью jquery и php-скрипта, который получает последний курс обмена от Yahoo!

Моя функция обновления работает с элементами, которые я могу обновить с помощью .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 Ответ

2 голосов
/ 20 октября 2011
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/

...