как получить результаты ответа и выполнить расчеты по этому результату - PullRequest
0 голосов
/ 23 июня 2018

Javascript code:

function suma(){
        var sum1 = document.getElementById("sum1");
        var sum2 = document.getElementById("sum2");
        var input = document.getElementById("resultado");
        resultado = (sum1.value * sum2.value);
        input.value= resultado;
    }

Как выполнить вычисление 1% для ответа из переменной resultado и поместить ответ внутри premium?

Мой код дляДелая это:

function percentage(){
        var resultado = document.getElementById("resultado").value;
        var input = document.getElementById("premium");
        var premium = (0.01*resultado.value);
        input.value = premium;

    }

HTML-коды

    <input type="number" class="form-control" required onblur="if(this.value 
     == ''){this.value='0'}" onKeyUp="suma();"  id="sum2"   name="Weight" 
    value="0" />
    <input type="text" class="form-control" onblur="if(this.value == '') 
    {this.value='0'}"  onKeyUp="suma();" id="sum1"    name="variable" 
    value="3.25" readonly="readonly" />
    <input  type="text" class="form-control" name="shipping_subtotal" 
    id="resultado" value="0" />
    <input type="number" class="form-control"  id="insurance" 
    name="insurance" onblur="if(this.value == ''){this.value='0'}"  
    name="variable" value="0.01" readonly="readonly" >
    <input type="number" class="form-control"  id="premium" name="premium" 
    value="0" onKeyUp "percentage();" >

1 Ответ

0 голосов
/ 23 июня 2018

У вас довольно много мелких ошибок в коде.Не волнуйтесь, их легко пропустить.При разработке нужно помнить о том, что ваши интересы должны быть разделены, потому что ваше будущее и другие разработчики, работающие с вашим кодом, будут вам благодарны.Под разделением интересов в этом контексте я подразумеваю логику против шаблонизации.HTML принадлежит шаблонам, а JavaScript - ваша логика.Когда вы пишете встроенный JavaScript, например <input onblur="if(this.value == ''){this.value='0'}">, это делает ваш JavaScript очень сложным для отслеживания и поддержки.В вашем файле JavaScript вы можете использовать document.getElementById('demo').onblur = if(this.value == ''){this.value='0'}; вместо этого, и теперь вся ваша логика может быть найдена в одном месте.Лично я предпочитаю прослушиватели событий, потому что в отличие от onblur, вы можете назначить несколько функций данному событию, и вы рискуете перезаписать любую функциональность, которая была написана где-то еще.

Предполагая var el = document.getElementById('demo');

МЕТОД 1:

el.onblur = if(this.value == ''){this.value='0'};

// This overwrites the onblur function from the line above
el.onblur = alert('hello');

МЕТОД 2:

el.addEventListener('blur', function() { if(this.value == ''){this.value='0'} });

// This does not overwrite the function above,
// instead, it just adds another function to the event.
el.addEventListener('blur', function() { alert('hello'); });

Кроме этого, я считаю, что ваш код будет работать с несколькими исправлениями ваших ошибок.Чтобы помочь вам, я написал альтернативу вашим сценариям выше.Я не уверен, что все получилось так, как вы хотели, так что не стесняйтесь настраивать его и делать его своим.

var sum1 = document.getElementById("sum1");
var sum2 = document.getElementById("sum2");
var resultado = document.getElementById("resultado");
var premium = document.getElementById("premium");
var insurance = document.getElementById("insurance");

function calculateFields() {
  var suma = (sum1.value * sum2.value);
  resultado.value = suma;
  premium.value = (0.01 * suma);
}

var inputs = [sum1, sum2, resultado, premium, insurance];
inputs.forEach(function(el) {
  el.addEventListener('blur', function() {
    this.value = this.value === '' ? 0 : this.value;
  });
  el.addEventListener('input', calculateFields);
});

Возиться с кодом на jsfiddle .

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