Разделите поля ввода с помощью JavaScript - PullRequest
0 голосов
/ 27 января 2019

У меня есть 3 поля ввода:

<input type="text" id ="v0" onkeyup="calculate()"><br>
<input type="text" id ="v1" onkeyup="calculate()"><br>
Result: <input type="text" id="result" onkeyup="calculate()"  readonly><br>

Я пытаюсь подсчитать число с 1-го входа, разделенное на число с 2-го входа и отобразить его на 3-м входе.

MyКод JavaScript:

<script type="text/javascript">

function calculate(){
var result = document.getElementById('result');
var el, i = 0, total = 0; 
while(el = document.getElementById('v'+(i++)) ) {
el.value = el.value.replace(/\\D/,"");
total = total + Number(el.value);
}
result.value = total;
if(document.getElementById('v0').value =="" && document.getElementById('v1').value ==""){
 result.value ="";
}
}
</script>

Код работает нормально для ДОБАВЛЕНИЯ этих входных значений, но мне нужно РАЗДЕЛИТЬ значения из полей ввода.Я пытался заменить "+" на "/", но это нарушает функциональность.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Вы можете попробовать более простой подход, такой как:

function calculate () {
  var input1 = document.querySelector('#v0').value;
  var input2 = document.querySelector('#v1').value;
  if (input1 && input2) {
    document.querySelector('#result').value = (input1 / input2).toFixed(2);
  }
}
0 голосов
/ 27 января 2019

Прежде всего вы должны использовать "-" для вычитания. Но если вы хотите выполнить деление, проблема в том, что во время первой итерации у вас будет общее значение 0, и оно будет:

iteration[1]: 0/anything = 0
iteration[2]: 0/anything = 0
and so on

Таким образом, если вы хотите выполнить деление, вам нужно общее начальное значение, оно должно быть 1-м входом. Надеюсь, это поможет.

...