Увеличение вместо уменьшения значения из числа типа ввода - PullRequest
0 голосов
/ 16 июня 2020

Onclick wordcount номер типа ввода (приращение и убывание) должен отображать значение Общая стоимость .

Onclick количество номер типа ввода (увеличение и уменьшение) должно принимать значение из Общая стоимость и вычислять, отображать значение в Общая стоимость .

<input class="form-control" type="number" id="wordcount" onchange="calTotal();" name="wordcount" value="" min="1" max="100000000000" id="wordcount" >

<input class="form-control" type="number"  id="quantity"  onchange="calTotal();" name="quantity" value="" min="1" max="100000000000">

Отображать результаты здесь:

<input type="number"  readonly="readonly" min="1n" name="total" id="running-summary-total" value="0.00">

введите здесь описание изображения

Javascript для расчетов:

<script>
function calTotal(){
var z = document.getElementById("wordcount").value;

    console.log(z)
   if (document.getElementById("wordcount").value) {
     var wc = z * 0.098;
   document.getElementById("running-summary-total").value =  +wc;
    }
   if (document.getElementById("quantity").value) {
    var r = document.getElementById("running-summary-total").value 
     var wc = r * 2;
   document.getElementById("running-summary-total").value =  +wc;
    }
}
</script>

enter image description here У меня нет проблем с функцией wordcount, но у меня проблема с количеством, когда я уменьшаю значение в document.getElementById("quantity").value, оно увеличивает его, а не уменьшает на 2.

Ответы [ 2 ]

1 голос
/ 16 июня 2020

согласно комментариям и предоставленным объяснениям. я думаю, это то, что вы ищете:

function calTotal(){
	let wordcount = $("#wordcount").val();//get wordcount value
  let quantity = $("#quantity").val();//get quantity value
	if(wordcount){//if wordcount has value
		var wc = wordcount * 0.098;
    $("#running-summary-total").val(wc);
	}
  if(quantity && quantity < 0){//if quantity has value and its smaller then 0 (negative value)
  	let oldtotal = $("#running-summary-total").val();//getting the old total value
    let calc = Math.abs(quantity) * 2;//added Math.abs to turn negative number into positive, and mulitply by 2
    let newtotal = oldtotal / calc;// here we divide the old total by the quatity times 2
    $("#running-summary-total").val(newtotal);
  }
  if(quantity && quantity > 0){//if quantity has value and its bigger then 0 (positive value)
  	let oldtotal = $("#running-summary-total").val();//getting the old total value
    let calc = quantity * 2;//here we multiply quantity by 2
    let newtotal = oldtotal * calc;// here we multiply the old total by the quantity times 2
    $("#running-summary-total").val(newtotal);
  }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 <input class="form-control" type="number" id="wordcount" onchange="calTotal();" name="wordcount" value="" min="1" max="100000000000">

   <input class="form-control" type="number"  id="quantity"  onchange="calTotal();" name="quantity" value="" min="" max="100000000000">
   
   <input type="number"  readonly="readonly" min="1n" name="total" id="running-summary-total" value="0.00">

Я переписал его в код jquery (мой простой javascript не очень хорошо)

редактировать добавлена ​​поддержка отрицательных значений и умножения на положительные значения (сначала деление).

1 голос
/ 16 июня 2020

Ваш код в настоящее время принимает значение total и умножает его на 2 без учета значения ввода количества или значения wordcount.

function calTotal(){
  var wordCount = document.getElementById("wordcount").value;
  let quantity = document.getElementById("quantity").value;

  document.getElementById("running-summary-total").value =  wordCount * quantity

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