D
D
des1roer2015-08-27 13:39:38
JavaScript
des1roer, 2015-08-27 13:39:38

Using js to split numbers?

<script>
    var input = document.getElementById("id[13]");
    var ca = document.getElementById("id[11]");
    var si = document.getElementById("id[12]");
    
      ca.onblur = function () {
        this.value = (this.value.replace(',', "."));
        if (isNaN(this.value)) { // введено не число
            // показать ошибку
            this.className = "error";
            error.innerHTML = 'Вы ввели не число. Исправьте, пожалуйста.'
            
        }
    };
  
    si.onblur = function () {
        this.value = (this.value.replace(',', "."));
        if (isNaN(this.value)) { // введено не число
            // показать ошибку
            this.className = "error";
            error.innerHTML = 'Вы ввели не число. Исправьте, пожалуйста.'
            alert(ca.value);
            if (ca.value != null)
                input.value = ca.value / this.value;
        }
    };

    input.onfocus = function () {
        if (this.className == 'error') { // сбросить состояние "ошибка", если оно есть
            this.className = "";
            error.innerHTML = "";
        }
    };
</script>

where did i go wrong?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
V
Vitaliy Orlov, 2015-08-27
@orlov0562

See the code on the frontend (if your js is there) and errors in the browser console on F12

D
des1roer, 2015-08-28
@des1roer

messed up with nested if

<script>
    var input = document.getElementById("id[13]");
    var ca = document.getElementById("id[11]");
    var si = document.getElementById("id[12]");
    input.disabled = true;

    ca.onblur = function () {
        this.value = (this.value.replace(',', "."));
        if (isNaN(this.value)) { // введено не число
            // показать ошибку
            this.className = "error";
            error.innerHTML = 'Вы ввели не число. Исправьте, пожалуйста.'
        }
        else {
            if (!isNaN(si.value)) {
                input.value = ((parseFloat(ca.value) || 0) / (parseFloat(si.value) || 0)).toFixed(3);
            }
        }
    };

    si.onblur = function () {
        this.value = (this.value.replace(',', "."));
        if (isNaN(this.value)) { // введено не число
            // показать ошибку
            this.className = "error";
            error.innerHTML = 'Вы ввели не число. Исправьте, пожалуйста.'
        }
        else {
            if (!isNaN(ca.value)) {
                input.value = ((parseFloat(ca.value) || 0) / (parseFloat(this.value) || 0)).toFixed(3);
            }
        }
    };

    si.onfocus = function () {
        if (this.className == 'error') { // сбросить состояние "ошибка", если оно есть
            this.className = "";
            error.innerHTML = "";
        }
    };
    ca.onfocus = function () {
        if (this.className == 'error') { // сбросить состояние "ошибка", если оно есть
            this.className = "";
            error.innerHTML = "";
        }
    };
</script>

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question