проверьте, равен ли ввод формы определенному тексту, если да, выполните вычисление и распечатайте в другом поле ввода

#javascript #jquery

#javascript #jquery

Вопрос:

Я хочу иметь возможность проверять два значения поля ввода (возвращаемое и размещенное на месте), например, 100 и 20

если поле результата = выигрыш, то выполните вычисление: верните (минус -) ставку, а затем отобразите результат в другом поле под названием прибыль.

PHP используется для извлечения данных из таблицы — игнорируйте PHP-код.

HTML

 <div class="form-group">
  <label for="stakePlaced">Stake Placed</label>
  <input type="text" class="form-control mb-2" placeholder="stakePlaced" name="stakePlaced" value="<?php echo $stakePlaced ?>">
</div>

<div class="form-group">
  <label for="result">Result</label>
  <input type="text" class="form-control mb-2" placeholder="result" name="result" id="result" onchange="calcula" value="<?php echo $result ?>">
</div>

<div class="form-group">
  <label for="return">Return</label>
  <input type="text" class="form-control mb-2" placeholder="return" name="return" id="return" value="<?php echo $return ?>">
</div>

<div class="form-group">
  <label for="return">Profit</label>
  <input type="text" class="form-control mb-2" placeholder="profit" name="profit" id="profit" value="<?php echo $profit ?>">
</div>
  

JS

   function calcula(){
    $(document).ready(function(){
      $("#result").keyup(function(){
        if (this.value == "Win"){
          var vreturn = document.getElementById('return').value;
          var stake = document.getElementById('stakePlaced').value; 
          var result = parseFloat(vreturn)-parseFloat(stake);

          var secresult = result.toFixed(2);

          document.getElementById('profit').value = secresu<
       }
    });
});
 window.onload = calcula;
  

Комментарии:

1. поля return и profit не имеют идентификаторов.

2. Спасибо, я добавил оба идентификатора, все еще не работает.

3. Пожалуйста, объясните, что означает «не работает». Какую ошибку вы получаете? неверен ли результат / вычисление? это вообще не вычисляется?

4. спасибо за ввод, теперь он работает с помощью Луи Патриса Бессетта

Ответ №1:

Ваша математика неясна… Я не знаю, каким может быть значение Win при работе с числовыми значениями… Но это может быть чем-то выходящим за рамки.

Чтобы получить входные значения с помощью name (поскольку их нет id ), вы можете использовать селекторы атрибутов.

Смотрите ниже… Введите «Win» в поле «Результат» (второе). Он выведет «0.00» в поле «Прибыль» (последнее).

 $(document).ready(function(){
  $("#result").keyup(function(){
    if (this.value == "Win"){
      console.log("Win!");
      var vreturn = $("[name='return']").val();
      var stake = $("[name='stakePlaced']").val(); 
      var result = parseFloat(vreturn)-parseFloat(stake);

      var secresult = result.toFixed(2);

      $("[name='profit']").val(secresult);
    }
  });
});  
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="form-group">
  <label for="stakePlaced">Stake Placed</label>
  <input type="text" class="form-control mb-2" placeholder="stakePlaced" name="stakePlaced" value="20">
</div>

<div class="form-group">
  <label for="result">Result</label>
  <input type="text" class="form-control mb-2" placeholder="result" name="result" id="result" value="100">
</div>

<div class="form-group">
  <label for="return">Return</label>
  <input type="text" class="form-control mb-2" placeholder="return" name="return" value="20">
</div>

<div class="form-group">
  <label for="return">Profit</label>
  <input type="text" class="form-control mb-2" placeholder="profit" name="profit" value="30">
</div>  

И вам не нужно иметь $(document).ready(function(){ в именованной функции, которая выполняется в window.onload 😉

Комментарии:

1. действительно ценю помощь, она не работает 🙂 большое спасибо.