#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. действительно ценю помощь, она не работает
большое спасибо.