У меня есть код Javascript, который преобразует числовое значение в его числовое имя (например, от 120 до Сто двадцать).Javascript code работает при запуске без сервера, но не работает (частично) при запуске на сервере?
Когда я открываю веб-страницу и пытаюсь использовать ее локально, она работает должным образом (скриншоты ниже).
, но когда я запускаю его на любом сервере (http-сервере, таком как Wamp или mangoose или github.io), результат не такой, как ожидалось. Он вставляет слово «undefined» между ними.
Screenshot when running locally
Вы можете увидеть код на https://github.com/saurabhshri/pathology
Javascript код находится в script.js, а вызывается в index.html
EDIT1: Видимо, я не могу опубликовать более одна ссылка. Поэтому я просто привязываю свою ссылку github, где вы можете увидеть весь код и попробовать сами.
EDIT2: Вот код JS отвечает за преобразование:
var a = ['','one ','two ','three ','four ', 'five ','six ','seven ','eight ','nine ','ten ','eleven ','twelve ','thirteen ','fourteen ','fifteen ','sixteen ','seventeen ','eighteen ','nineteen '];
var b = ['', '', 'twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety'];
function inWords (num) {
if ((num = num.toString()).length > 9) return 'overflow';
n = ('000000000' + num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/);
if (!n) return; var str = '';
str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : '';
str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : '';
str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : '';
str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : '';
str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) + 'only ' : '';
return str;
}
Вот когда выше JS код называется (последняя строка):
/* Update Invoice
/* ========================================================================== */
function updateInvoice() {
\t var total = 0;
\t var cells, price, total, a, i;
\t // update inventory cells
\t // ======================
\t for (var a = document.querySelectorAll('table.inventory tbody tr'), i = 0; a[i]; ++i) {
\t \t // get inventory row cells
\t \t cells = a[i].querySelectorAll('span:last-child');
\t \t // set price as cell[2] * cell[3]
\t \t price = parseFloatHTML(cells[2]);// * parseFloatHTML(cells[3]);
\t \t // add price to total
\t \t total += price;
\t \t // set row total
\t \t cells[4].innerHTML = price;
\t }
\t // update balance cells
\t // ====================
\t // get balance cells
\t cells = document.querySelectorAll('table.balance td:last-child span:last-child');
\t // set total
\t cells[0].innerHTML = total;
\t // set balance and meta balance
\t cells[2].innerHTML = document.querySelector('table.meta tr:last-child td:last-child span:last-child').innerHTML = parsePrice(total - parseFloatHTML(cells[1]));
\t // update prefix formatting
\t // ========================
\t var prefix = document.querySelector('#prefix').innerHTML;
\t for (a = document.querySelectorAll('[data-prefix]'), i = 0; a[i]; ++i) a[i].innerHTML = prefix;
\t // update price formatting
\t // =======================
\t for (a = document.querySelectorAll('span[data-prefix] + span'), i = 0; a[i]; ++i) if (document.activeElement != a[i]) a[i].innerHTML = parsePrice(parseFloatHTML(a[i]));
\t document.getElementById("bwords").innerHTML = inWords (total); \t
}
Вот HTML-код, в котором отображается результат:
<span style="font-size: 80%;">Amount in words : Rupees </span><span style="text-transform: capitalize;" style="font-size: 80%;"id="bwords"></span>
EDIT3: Код работает частично на то есть сервер для 250
Желаемая выход: Двести пятьдесят только
Обрезанный выпуск: Двадцать не определено Сто пятьдесят пять только
Пожалуйста, прочитайте [Что-то на моем веб-сайте не работает. Могу ли я просто вставить ссылку на него?] (Http://meta.stackoverflow.com/questions/125997/something-on-my-web-site-doesnt-work-can-i-just-paste-a-link -в-она). Вопросы, зависящие от внешних ресурсов, которые нужно понимать, становятся бесполезными, когда внешний ресурс уходит или фиксируется. Создайте [SSCCE] (http://www.sscce.org/). – Quentin
Хорошо, я сейчас отредактирую вопрос. –
@Quentin Добавлены фрагменты кода. –