2016-04-15 9 views
2

から呼び出される:この中 http://jsfiddle.net/5tt7d3e6/は、私は、次の例に基づいて例を使用している機能

、機能は単語に番号を回すために作成されます。

機能は、次のHTML

<input type="text" name="number" placeholder="Number OR Amount" onkeyup="word.innerHTML=convertNumberToWords(this.value)" /> 
<div id="word"></div> 

で処理された上記のあなたは、テキストボックスに数値を入力することができます。この関数は、数値として入力した内容を単語に変換します。

数字を保持しているdivを表示するために入力するのではなく、簡単に設定することはできますか? '

のような:

<div data="innerHTML=convertNumberToWords(1233213)"></div> 
+0

'onkeyup'が呼び出されているイベントです。.. 'データ'はありません! – Rayon

答えて

0

あなたはあなたのロジックを置くことができonreadystatechangeと内側のイベントハンドラをフックアップすることができます。

Fiddle 1

document.onreadystatechange = function() { 
    word.innerHTML = convertNumberToWords(1233213); 
}; 

しかし、あなたがinput内部の既存の値に基づいてデータを表示したい場合は、最初のJSでinput

<input id="number" ... /> 

そしてためにid属性を置く:

document.onreadystatechange = function() { 
    word.innerHTML = convertNumberToWords(number.value); 
}; 

Fiddle 2

0

提案:convertNumberToWordsでの使用のswitch文()

switch(amount){ 
    case 0: 'zero'; break; 
    default: 'Please enter number only!'; break; 
} 
0

Fiddle Link

変更、それは言葉

<input id="check"type="text" name="number" placeholder="Number OR Amount" /> 
<div id="word"></div> 
<input type="button" id="button" value="click"> 

jsのコードに戻りますテキストボックスを押しクリックボタンの値

$("#button").click(function() 
{ 
var number = $('#check').val(); 
$("#word").html(toWords(number)); 

}); 


var th = ['','thousand','million', 'billion','trillion']; 
var dg = ['zero','one','two','three','four', 'five','six','seven','eight','nine']; var tn = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen']; var tw = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; function toWords(s){s = s.toString(); s = s.replace(/[\, ]/g,''); if (s != parseFloat(s)) return 'not a number'; var x = s.indexOf('.'); if (x == -1) x = s.length; if (x > 15) return 'too big'; var n = s.split(''); var str = ''; var sk = 0; for (var i=0; i < x; i++) {if ((x-i)%3==2) {if (n[i] == '1') {str += tn[Number(n[i+1])] + ' '; i++; sk=1;} else if (n[i]!=0) {str += tw[n[i]-2] + ' ';sk=1;}} else if (n[i]!=0) {str += dg[n[i]] +' '; if ((x-i)%3==0) str += 'hundred ';sk=1;} if ((x-i)%3==1) {if (sk) str += th[(x-i-1)/3] + ' ';sk=0;}} if (x != s.length) {var y = s.length; str += 'point '; for (var i=x+1; i<y; i++) str += dg[n[i]] +' ';} return str.replace(/\s+/g,' ');} 
+0

私は自分の答えを編集しました –

0

処理されている文書に書き込む場合は、それ以降はとなります。

<div id="word"> 

    <script> 
    document.write(convertNumberToWords(12233456)) 
    </script> 

</div> 

しかしこれは推奨される方法です:

<div id="word"></div> 
    <script> 
    document.getElementById('word').innerHTML = convertNumberToWords(12233456); 
    </script> 

-

<script> 
 
    function convertNumberToWords(amount) { 
 
    var words = new Array(); 
 
    words[0] = ''; 
 
    words[1] = 'One'; 
 
    words[2] = 'Two'; 
 
    words[3] = 'Three'; 
 
    words[4] = 'Four'; 
 
    words[5] = 'Five'; 
 
    words[6] = 'Six'; 
 
    words[7] = 'Seven'; 
 
    words[8] = 'Eight'; 
 
    words[9] = 'Nine'; 
 
    words[10] = 'Ten'; 
 
    words[11] = 'Eleven'; 
 
    words[12] = 'Twelve'; 
 
    words[13] = 'Thirteen'; 
 
    words[14] = 'Fourteen'; 
 
    words[15] = 'Fifteen'; 
 
    words[16] = 'Sixteen'; 
 
    words[17] = 'Seventeen'; 
 
    words[18] = 'Eighteen'; 
 
    words[19] = 'Nineteen'; 
 
    words[20] = 'Twenty'; 
 
    words[30] = 'Thirty'; 
 
    words[40] = 'Forty'; 
 
    words[50] = 'Fifty'; 
 
    words[60] = 'Sixty'; 
 
    words[70] = 'Seventy'; 
 
    words[80] = 'Eighty'; 
 
    words[90] = 'Ninety'; 
 
    amount = amount.toString(); 
 
    var atemp = amount.split("."); 
 
    var number = atemp[0].split(",").join(""); 
 
    var n_length = number.length; 
 
    var words_string = ""; 
 
    if (n_length <= 9) { 
 
     var n_array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0); 
 
     var received_n_array = new Array(); 
 
     for (var i = 0; i < n_length; i++) { 
 
     received_n_array[i] = number.substr(i, 1); 
 
     } 
 
     for (var i = 9 - n_length, j = 0; i < 9; i++, j++) { 
 
     n_array[i] = received_n_array[j]; 
 
     } 
 
     for (var i = 0, j = 1; i < 9; i++, j++) { 
 
     if (i == 0 || i == 2 || i == 4 || i == 7) { 
 
      if (n_array[i] == 1) { 
 
      n_array[j] = 10 + parseInt(n_array[j]); 
 
      n_array[i] = 0; 
 
      } 
 
     } 
 
     } 
 
     value = ""; 
 
     for (var i = 0; i < 9; i++) { 
 
     if (i == 0 || i == 2 || i == 4 || i == 7) { 
 
      value = n_array[i] * 10; 
 
     } else { 
 
      value = n_array[i]; 
 
     } 
 
     if (value != 0) { 
 
      words_string += words[value] + " "; 
 
     } 
 
     if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) { 
 
      words_string += "Crores "; 
 
     } 
 
     if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) { 
 
      words_string += "Lakhs "; 
 
     } 
 
     if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) { 
 
      words_string += "Thousand "; 
 
     } 
 
     if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) { 
 
      words_string += "Hundred and "; 
 
     } else if (i == 6 && value != 0) { 
 
      words_string += "Hundred "; 
 
     } 
 
     } 
 
     words_string = words_string.split(" ").join(" "); 
 
    } 
 
    return words_string; 
 
    } 
 
</script> 
 
<div id="word"> 
 

 
    <script> 
 
    document.write(convertNumberToWords(12233456)) 
 
    </script> 
 

 
</div>

関連する問題