2016-04-15 10 views
2

aufgerufen werden ich ein Beispiel auf das folgende Beispiel basiert bin mit: http://jsfiddle.net/5tt7d3e6/statischen Datenmenge in einem div Zuweisen von einer Funktion

Dabei wird eine Funktion erstellt wird, eine Zahl in Worte zu verwandeln.

Die Funktion wird in der folgenden HTML verarbeitet

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

Die oben können Sie eine Zahl in ein Textfeld einzugeben. Die Funktion übersetzt das, was Sie als Zahl eingeben, in Wörter.

Gibt es eine einfache Möglichkeit, ein div zu setzen, das bereits die Nummer enthält, anstatt es einzugeben, um es anzuzeigen?

wie:

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

'onkeyup' ein Ereignis, das aufgerufen wird .. 'Daten' ist nicht! – Rayon

Antwort

0

können Sie einen Event-Handler hookup für onreadystatechange und im Inneren, können Sie Ihre Logik setzen.

Fiddle 1

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

Allerdings, wenn Sie Daten zeigen wollen, basierend auf den bestehenden Wert innerhalb input, legte zuerst ein id-Attribut für input

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

Und dann in JS:

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

Fiddle 2

0

Vorschlag: Verwendung Switch-Anweisung in convertNumberToWords()

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

Fiddle Link

der Wert der Textbox und drücken Klick-Taste ändern sie in Wort

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

js Code

zurück
$("#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

Ich habe meine Antwort bearbeitet –

0

Wenn Sie in das Dokument schreiben möchten, wie es verarbeitet wird und nicht später.

<div id="word"> 

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

</div> 

Dies ist der empfohlene Weg, aber:

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

Verwandte Themen