Преобразовать сумму в слова с JavaScript - PullRequest
1 голос
/ 18 февраля 2020

Мне нужно преобразовать общую сумму в слова с jquery в файле сценария.

У меня есть общее значение, рассчитанное и помещенное в значение id = (# grandT), и то же значение должно быть преобразовано в слова (рупии / индийская система нумерации) в текстовой области (#word) https://en.wikipedia.org/wiki/Indian_numbering_system

Файл сценария

$(document).ready(function() {

  $(".input").keyup(function() {
    var valp1 = +$(".prec1").val();
    var valr1 = +$(".rate1").val();
    var valq1 = +$(".qty1").val();

    var valp2 = +$(".prec2").val();
    var valr2 = +$(".rate2").val();
    var valq2 = +$(".qty2").val();

    $("#Gst1").val((valr1 * valq1) * valp1 / 100);
    $("#Gst2").val((valr2 * valq2) * valp2 / 100);

  });

  $(".input").keyup(function() {

    var val1 = +$(".rate1").val();
    var val2 = +$(".qty1").val();

    var val3 = +$(".rate2").val();
    var val4 = +$(".qty2").val();

    var valp1 = +$(".prec1").val();
    var valp2 = +$(".prec2").val();

    var valr1 = +$(".rate1").val();
    var valr2 = +$(".rate2").val();

    var valq1 = +$(".qty1").val();
    var valq2 = +$(".qty2").val();

    $("#result1").val(val1 * val2);
    $("#result2").val(val3 * val4);

    $("#grandT").val(((val1 * val2) + (val3 * val4)) + ("/-"));

  });

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>

<head>
  <meta charset="ISO-8859-1">
  <script type="text/javascript" src="jquery-1.9.1.js"></script>
  <script type="text/javascript" src="Script.js"></script>
  <link rel="stylesheet" href="StyleSheet.css">

</head>

<body>
  <page size="A4">


    <div class="rowmain">
      <table>
        <thead class="th1">
          <tr>
            <th>PRECENTAGE</th>
            <th>RATE</th>
            <th>QTY</th>
            <th>GST <br> AMOUNT
            </th>
            <th>AMOUNT</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td valign="middle"><input type="number" class="input prec1" value="" style="width: 3em" name="pre"></td>
            <td valign="middle"><input type="number" name="rate" class="input rate1" value="" style="width: 5em"></td>
            <td valign="middle"><input type="number" name="qty" class="input qty1" value="" style="width: 5em"></td>
            <td valign="middle"><input disabled="disabled" id="Gst1" style="width: 6.5em" name="gst"></td>
            <td valign="middle"><input disabled="disabled" class="text-right" id="result1" name="result1" class="input result1" value="" style="width: 7.4em"></td>
          </tr>

          <tr>
            <td valign="middle"><input type="number" class="input prec2" value="" style="width: 3em" name="pre"></td>
            <td valign="middle"><input type="number" name="rate" class="input rate2" value="" style="width: 5em"></td>
            <td valign="middle"><input type="number" name="qty" class="input qty2" value="" style="width: 5em"></td>
            <td valign="middle"><input disabled="disabled" id="Gst2" style="width: 6.5em" name="gst2"></td>
            <td valign="middle"><input disabled="disabled" class="text-right" id="result2" name="result2" class="input result2" style="width: 7.4em"></td>
          </tr>

        </tbody>
      </table>
    </div>
    <div class="rowmain">

      <div class="leftttext">
        <table class="th1">
          <tr>
            <th>Rupees in Words</th>
            <td><textarea id="word" rows="2" cols="60"></textarea></td>
          </tr>
        </table>
      </div>


      <div class="righttext">
        <table>

          <tr>
            <th class="thG">Grand Total</th>
            <td><input disabled="disabled" class="text1" id="grandT" value="" style="width: 8em"></td>
          </tr>
        </table>
      </div>
    </div>

  </page>
</body>

</html>

1 Ответ

1 голос
/ 18 февраля 2020

Вот рабочий фрагмент того, чего вы хотели достичь, как уже предлагалось, чтобы преобразование в слово было выполнено фрагментом в ответе здесь: Преобразование цифр в слова с помощью JavaScript, я рекомендую вам прочитать и посмотрите на опубликованный пакет, если он более полезен для вас.

/* 
 * taken from 
 * https://stackoverflow.com/questions/14766951/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).ready(function() {

    $(".input").keyup(function() {
        var valp1 = +$(".prec1").val();
        var valr1 = +$(".rate1").val();
        var valq1 = +$(".qty1").val();

        var valp2 = +$(".prec2").val();
        var valr2 = +$(".rate2").val();
        var valq2 = +$(".qty2").val();

        $("#Gst1").val((valr1 * valq1) * valp1 / 100);
        $("#Gst2").val((valr2 * valq2) * valp2 / 100);

    });

    $(".input").keyup(function() {

            var val1 = +$(".rate1").val();
            var val2 = +$(".qty1").val();

            var val3 = +$(".rate2").val();
            var val4 = +$(".qty2").val();

            var valp1 = +$(".prec1").val();
            var valp2 = +$(".prec2").val();

            var valr1 = +$(".rate1").val();
            var valr2 = +$(".rate2").val();

            var valq1 = +$(".qty1").val();
            var valq2 = +$(".qty2").val();

            $("#result1").val(val1 * val2);
            $("#result2").val(val3 * val4);

            var total = (val1 * val2) + (val3 * val4);

            $("#grandT").val(total + "/-");
            
            $("#word").val(inWords(total));
    });

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>

<head>
  <meta charset="ISO-8859-1">
  <script type="text/javascript" src="jquery-1.9.1.js"></script>
  <script type="text/javascript" src="Script.js"></script>
  <link rel="stylesheet" href="StyleSheet.css">

</head>

<body>
  <page size="A4">


    <div class="rowmain">
      <table>
        <thead class="th1">
          <tr>
            <th>PRECENTAGE</th>
            <th>RATE</th>
            <th>QTY</th>
            <th>GST <br> AMOUNT
            </th>
            <th>AMOUNT</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td valign="middle"><input type="number" class="input prec1" value="" style="width: 3em" name="pre"></td>
            <td valign="middle"><input type="number" name="rate" class="input rate1" value="" style="width: 5em"></td>
            <td valign="middle"><input type="number" name="qty" class="input qty1" value="" style="width: 5em"></td>
            <td valign="middle"><input disabled="disabled" id="Gst1" style="width: 6.5em" name="gst"></td>
            <td valign="middle"><input disabled="disabled" class="text-right" id="result1" name="result1" class="input result1" value="" style="width: 7.4em"></td>
          </tr>

          <tr>
            <td valign="middle"><input type="number" class="input prec2" value="" style="width: 3em" name="pre"></td>
            <td valign="middle"><input type="number" name="rate" class="input rate2" value="" style="width: 5em"></td>
            <td valign="middle"><input type="number" name="qty" class="input qty2" value="" style="width: 5em"></td>
            <td valign="middle"><input disabled="disabled" id="Gst2" style="width: 6.5em" name="gst2"></td>
            <td valign="middle"><input disabled="disabled" class="text-right" id="result2" name="result2" class="input result2" style="width: 7.4em"></td>
          </tr>

        </tbody>
      </table>
    </div>
    <div class="rowmain">

      <div class="leftttext">
        <table class="th1">
          <tr>
            <th>Rupees in Words</th>
            <td><textarea id="word" rows="2" cols="60"></textarea></td>
          </tr>
        </table>
      </div>


      <div class="righttext">
        <table>

          <tr>
            <th class="thG">Grand Total</th>
            <td><input disabled="disabled" class="text1" id="grandT" value="" style="width: 8em"></td>
          </tr>
        </table>
      </div>
    </div>

  </page>
</body>

</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...