Как создать два разных расчета для разных вариантов, используя JavaScript.? - PullRequest
0 голосов
/ 02 августа 2020

Это, вероятно, простой вопрос, но я ничего не нахожу в своих поисках, и я JavaScript новичок. Возможно, я не получаю точного ответа на свой вопрос. Я хотел бы сделать калькулятор для расчета освобождения от HRA со следующими условиями: • Фактический HRA, полученный от работодателя • Для тех, кто живет в мегаполисах: 50% от (Basi c зарплата + пособие по семейным обстоятельствам) Для тех, кто живет в не городских городах: 40% от (базовая c заработная плата + надбавка по уважению)

Я сделал калькулятор, но застрял при выборе варианта, т.е. да / нет, что касается оба варианта условия разные. Я искал так много статей в Google, но не смог найти правильных решений, либо я не могу правильно понять, может ли кто-нибудь мне помочь, будет признателен от всего сердца. Заранее спасибо.

Это мой код `

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
<title> HRA Exemption Form</title>
  </head>
  <body>
    <h1 > HRA Exemption Calculator</h1>
    <div class="container bg-success text-white">
      <div class="row">
      <div class="col-sm-6">
        <form>
            <h3> HRA Input data</h3>
            <form class="container">
              <div class="row">
                <div class="col">
                  <label for="formGroupExampleInput"> Basic Salary received p.m</label>
                  <input type="text" class="form-control" id="one"  placeholder="Basic salary received">
              </div>
                <div class="col">
                  <label for="formGroupExampleInput"> Dearness Allowance received</label>
                  <input type="text" class="form-control" id="two" placeholder="Dearness Allownace">
                </div>
              </div>
              <div class="row">
                <div class="col">
                  <label for="formGroupExampleInput"> HRA received</label>
                 <input type="number" class="form-control" id="HRA" placeholder="HRA  received">
              </div>
                <div class="col">
                  <label for="formGroupExampleInput"> Total rent paid</label>
                 <input type="text" class="form-control" id="TRP" placeholder="Total rent paid ">
               </div>
              </div> 
              </form>
              <form name="forms"
                 onsubmit ="return myfun()" >
                 <div class="col mt-3">
                   <p> Do you live in metros like Mumbai, Delhi, Kolkatta ?</p> 
                  </div>
                  <div class="form-check form-check-inline">
                    <input class="form-check-input" type="radio" name="livingstatus" id="inlineRadio1" 
                    value="Yes">
                    <label class="form-check-label" for="inlineRadio1">Yes</label>
                  </div>
                  <div class="form-check form-check-inline mt-3">
                  <input class="form-check-input" type="radio" name="livingstatus" id="inlineRadio2" 
                   value="No">
                  <label class="form-check-label" for="inlineRadio2">No</label>
                </div>
              <div class="row justify-content-center mt-3" >
                  <div class="col-4">
                  <button type="button" class="btn btn-warning" onclick="calculate()"> Calculate 
             Now</button> 
                </div>
              </div>
          </form>
          <p id="result" > </p>
          <p id="result1"> </p>
          <p id="result2" ></p> 
        </div>
          <script>
      function calculate(){
      var y = document.getElementById('result');
      var x = document.getElementById('result1');
      var a = document.getElementById("one").value;
      var b = document.getElementById("two").value;
      var e = document.getElementById('result2');
      y.innerHTML = a*12;
      x.innerHTML = b*12;
      e.innerHTML = 0.5*(+a + +b);
      }
      </script>
  </body>
</html>`

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Вы можете выбрать два входа, а затем вычислить ответ в зависимости от того, какой из них отмечен, или, если ни один из них не отмечен, вывести сообщение об ошибке.

<!doctype html>
<html lang="en">

<head>
  <!-- Required meta tags -->
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

  <!-- Bootstrap CSS -->
  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
  <title> HRA Exemption Form</title>
</head>

<body>
  <h1> HRA Exemption Calculator</h1>
  <div class="container bg-success text-white">
    <div class="row">
      <div class="col-sm-6">
        <form>
          <h3> HRA Input data</h3>
          <form class="container">
            <div class="row">
              <div class="col">
                <label for="formGroupExampleInput"> Basic Salary received p.m</label>
                <input type="text" class="form-control" id="one" placeholder="Basic salary received">
              </div>
              <div class="col">
                <label for="formGroupExampleInput"> Dearness Allowance received</label>
                <input type="text" class="form-control" id="two" placeholder="Dearness Allownace">
              </div>
            </div>
            <div class="row">
              <div class="col">
                <label for="formGroupExampleInput"> HRA received</label>
                <input type="number" class="form-control" id="HRA" placeholder="HRA  received">
              </div>
              <div class="col">
                <label for="formGroupExampleInput"> Total rent paid</label>
                <input type="text" class="form-control" id="TRP" placeholder="Total rent paid ">
              </div>
            </div>
          </form>
          <form name="forms" onsubmit="return myfun()">
            <div class="col mt-3">
              <p> Do you live in metros like Mumbai, Delhi, Kolkatta ?</p>
            </div>
            <div class="form-check form-check-inline">
              <input class="form-check-input" type="radio" name="livingstatus" id="inlineRadio1" value="Yes">
              <label class="form-check-label" for="inlineRadio1">Yes</label>
            </div>
            <div class="form-check form-check-inline mt-3">
              <input class="form-check-input" type="radio" name="livingstatus" id="inlineRadio2" value="No">
              <label class="form-check-label" for="inlineRadio2">No</label>
            </div>
            <div class="row justify-content-center mt-3">
              <div class="col-4">
                <button type="button" class="btn btn-warning" onclick="calculate()"> Calculate 
             Now</button>
              </div>
            </div>
          </form>
          <p id="result"> </p>
          <p id="result1"> </p>
          <p id="result2"></p>
      </div>
      <script>
        function calculate() {
          var opt = document.querySelectorAll(".form-check-inline input");
          var y = document.getElementById('result');
          var x = document.getElementById('result1');
          var a = document.getElementById("one").value;
          var b = document.getElementById("two").value;
          var e = document.getElementById('result2');
          y.innerHTML = a * 12;
          x.innerHTML = b * 12;
          if (opt[0].checked) {
            // Lives in metros
            e.innerHTML = 0.5 * (+a + +b);
          } else if (opt[1].checked) {
            // Doesn't live in metros
            e.innerHTML = 0.4 * (+a + +b);
          } else {
            // If neither of them are checked
            e.innerHTML = "Insert default value here";
          }

        }
      </script>
</body>

</html>
0 голосов
/ 02 августа 2020

Вы также можете использовать .value самой опции (я изменил значения флажков на «0,5» и «0,4» в html) и использовать тернарный оператор ( test ? value for true : value for wrong):

        function calculate() {
          var opt = document.querySelector(".form-check-inline input:checked");
          var y = document.getElementById('result');
          var x = document.getElementById('result1');
          var a = +document.getElementById("one").value;
          var b = +document.getElementById("two").value;
          var e = document.getElementById('result2');
          y.innerHTML = a * 12;
          x.innerHTML = b * 12;
          e.innerHTML = opt
            ? opt.value * (a+b)
            : "Please click one option!";
        }
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
  <title> HRA Exemption Form</title>
</head>

<body>
  <h1> HRA Exemption Calculator</h1>
  <div class="container bg-success text-white">
    <div class="row">
      <div class="col-sm-6">
        <form>
          <h3> HRA Input data</h3>
          <form class="container">
            <div class="row">
              <div class="col">
                <label for="formGroupExampleInput"> Basic Salary received p.m</label>
                <input type="text" class="form-control" id="one" placeholder="Basic salary received">
              </div>
              <div class="col">
                <label for="formGroupExampleInput"> Dearness Allowance received</label>
                <input type="text" class="form-control" id="two" placeholder="Dearness Allownace">
              </div>
            </div>
            <div class="row">
              <div class="col">
                <label for="formGroupExampleInput"> HRA received</label>
                <input type="number" class="form-control" id="HRA" placeholder="HRA  received">
              </div>
              <div class="col">
                <label for="formGroupExampleInput"> Total rent paid</label>
                <input type="text" class="form-control" id="TRP" placeholder="Total rent paid ">
              </div>
            </div>
          </form>
          <form name="forms" onsubmit="return myfun()">
            <div class="col mt-3">
              <p> Do you live in metros like Mumbai, Delhi, Kolkatta ?</p>
            </div>
            <div class="form-check form-check-inline">
              <input class="form-check-input" type="radio" name="livingstatus" id="inlineRadio1" value="0.5">
              <label class="form-check-label" for="inlineRadio1">Yes</label>
            </div>
            <div class="form-check form-check-inline mt-3">
              <input class="form-check-input" type="radio" name="livingstatus" id="inlineRadio2" value="0.4">
              <label class="form-check-label" for="inlineRadio2">No</label>
            </div>
            <div class="row justify-content-center mt-3">
              <div class="col-4">
                <button type="button" class="btn btn-warning" onclick="calculate()"> Calculate 
             Now</button>
              </div>
            </div>
          </form>
          <p id="result"> </p>
          <p id="result1"> </p>
          <p id="result2"></p>
      </div>
...