数字到字母代码在Javascript中不起作用

问题描述 投票:0回答:3

最近我做了一个名为Converter的函数。它在早上完美运行,现在当我使用它时,代码无法运行,当我键入数字像3它应该打印像三,但我现在知道什么是问题,问题也没有显示。我是Javascript的新手这是代码

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script>
            function abc()
            {
             //   alert('hello');
                var amt=parseInt(document.getElementById('t1'));
                var d="";
                var ones=Array("","One","Two","Three","four","five");
                var tens=Array("","","Twenty","Thirthy","Fourthy","fifthy");
                var hundreds=Array("","One hundred","Two hundred","Three hundred","Four hundred","Five hundred");
                if(amt>=1&&amt<=19)
                {
                    d=ones[amt];

                }
                  document.getElementById('p1').innerHTML=d;
               // document.write(d);

            }
            </script>
    </head>
    <body>

                <input type="text" id="t1" />

                <input type="button"  value="Convert" onclick="abc()" />

                <p id="p1"></p>

    </body>
</html>
javascript html
3个回答
0
投票

你忘了解析它应该是的文本框的值

的document.getElementById( 'T1')。值


0
投票

除了我没有抓住价值的评论。

使用let amt = document.getElementById('t1').value。这将返回输入内的值。

有人为你在这里要做的事做了一个很好的例子:Convert digits into words with JavaScript

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;
}

document.getElementById('number').onkeyup = function() {
  document.getElementById('words').innerHTML = inWords(document.getElementById('number').value);
};
<span id="words"></span>
<input id="number" type="text" />

-1
投票

您的错误是由此行引起的:parseInt(document.getElementById('t1'));您正在尝试parseInt(html输入元素)。没有办法将HTML值解析为int,因此它返回NaN,它不能转换为“Three”或任何其他数字。这是工作代码:

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script>
            function abc()
            {
              
                var amt=document.getElementById('t1').value;
                var d="";
                var ones=Array("","One","Two","Three","four","five");
                var tens=Array("","","Twenty","Thirthy","Fourthy","fifthy");
                var hundreds=Array("","One hundred","Two hundred","Three hundred","Four hundred","Five hundred");
                if(amt>=1&&amt<=19)
                {
                    d=ones[amt];
                }
                  document.getElementById('p1').innerHTML=d;
               // document.write(d);

            }
            </script>
    </head>
    <body>

                <input type="text" id="t1" />

                <input type="button"  value="Convert" onclick="abc()" />

                <p id="p1"></p>

    </body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.