Как я могу изменить значение initialValue после каждого запуска? - PullRequest
0 голосов
/ 26 августа 2018

Я хочу менять значение initialValue после каждого запуска. Пример: Если я наберу 1000, это даст вывод как 11 000 (10000 + 1000), а я минус и я наберу 2000, это даст вывод9 000 (11 000 - 2000).Может ли кто-нибудь помочь мне относительно моей проблемы.

function Compute(initialNum, numOne) {
this._initialNum = 10000;
this._numOne = numOne;

this.addNum = function() {
	this._initialNum = +this._initialNum + +this._numOne;
	return this._initialNum;
};

this.minusNum = function() {
	this._initialNum = +this._initialNum - +this._numOne;
	return this._initialNum;
};
}
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>

<input type="hidden" id="persistedResult" value="10000" /><br><br>
<input type="radio" id="rdoAdd" name="rdo">Add<br><br>
<input type="radio" id="rdoMinus" name="rdo">Minus<br><br>
<input type="text" id="txtNumOne"><br><br>
<button onclick="printResult()">Compute</button><br><br>

<table border="1px">
<th>Result</th>

<tbody id = "tblResult">

</tbody>
</table>
<script src="java.js"></script>
<script>

var tblResult = document.getElementById("tblResult");
var personList = [];

function printResult() {
        var display = "";
        var initialValue = parseInt(document.getElementById("persistedResult").value);
        //var objAccount = new Compute(initialValue, numOne);
        var rdoAdd = document.getElementById("rdoAdd");
        var rdoMinus = document.getElementById("rdoMinus");
        var numOne = parseInt(document.getElementById('txtNumOne').value);
        //var numTwo = parseInt(document.getElementById('txtNumTwo').value);
        var objCompute = new Compute(initialValue, numOne);
        personList.push(objCompute);

        console.log(personList);
        var newValue = 0;
        for(var i = 0; i < personList.length; i++) {
            if(rdoAdd.checked) {
                //display += objAccount.addNum(); 
                newValue = personList[i].addNum();
                display = "<tr>";
                display += "<td>" + (newValue) + "</td>";
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();

            } else if(rdoMinus.checked){
                //display += objAccount.minusNum();
                newValue = personList[i]. minusNum();
                display = "<tr>";
                display += "<td>" + (newValue) + "</td>"; 
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();
        }
    }
    document.getElementById("persistedResult").value = newValue;
}
	function resetx() {
		document.getElementById('txtNumOne').value = "";
		document.getElementById("rdoAdd").checked = false;
		document.getElementById("rdoMinus").checked = false;
	}
</script>

</body>
</html>

Я хочу изменять значение initialValue после каждого прогона. Пример: Если я наберу 1000, это даст выходное значение 11 000 (10000 + 1000), и я минус и я печатаю 2000, это даст выходное значение как 9000 (11000 - 2000).Может ли кто-нибудь помочь мне относительно моей проблемы.

//constructor function
function Compute(initialNum, numOne) {
this._initialNum = 10000;
this._numOne = numOne;

this.addNum = function() {
	this._initialNum = +this._initialNum + +this._numOne;
	return this._initialNum;
};

this.minusNum = function() {
	this._initialNum = +this._initialNum - +this._numOne;
	return this._initialNum;
};
}

//javascript in the body tag
var tblResult = document.getElementById("tblResult");
var personList = [];

function printResult() {
        var display = "";
        var initialValue = parseInt(document.getElementById("persistedResult").value);
        var rdoAdd = document.getElementById("rdoAdd");
        var rdoMinus = document.getElementById("rdoMinus");
        var numOne = parseInt(document.getElementById('txtNumOne').value);
        var objCompute = new Compute(initialValue, numOne);
        personList.push(objCompute);

        console.log(personList);
        var newValue = 0;
        for(var i = 0; i < personList.length; i++) {
            if(rdoAdd.checked) {
                newValue = personList[i].addNum();
                display = "<tr>";
                display += "<td>" + (newValue) + "</td>";
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();

            } else if(rdoMinus.checked){
                newValue = personList[i]. minusNum();
                display = "<tr>";
                display += "<td>" + (newValue) + "</td>"; 
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();
        }
    }
    document.getElementById("persistedResult").value = newValue;
}
	function resetx() {
		document.getElementById('txtNumOne').value = "";
		document.getElementById("rdoAdd").checked = false;
		document.getElementById("rdoMinus").checked = false;
	}
<!DOCTYPE html> 
<html>
<head>
<title></title>
</head>
<body>

<input type="hidden" id="persistedResult" value="10000" /><br><br>
<input type="radio" id="rdoAdd" name="rdo">Add<br><br> //rdo for Add
<input type="radio" id="rdoMinus" name="rdo">Minus<br><br> //rdo for Subs
<input type="text" id="txtNumOne"><br><br> 
<button onclick="printResult()">Compute</button><br><br>

<table border="1px">
<th>Result</th>

<tbody id = "tblResult">

</tbody>
</table>

</body>
</html>

Я хочу изменять значение initialValue после каждого прогона. Пример: Если я наберу 1000, это даст выходное значение 11 000 (10000 + 1000), и я минус и я печатаю 2000, это даст выходное значение как 9000 (11000 - 2000).Может ли кто-нибудь помочь мне относительно моей проблемы.

function printResult() {
        var display = "";
        var initialValue = 10000;
        //var objAccount = new Compute(initialValue, numOne);
        var rdoAdd = document.getElementById("rdoAdd");
        var rdoMinus = document.getElementById("rdoMinus");
        var numOne = parseInt(document.getElementById('txtNumOne').value);
        //var numTwo = parseInt(document.getElementById('txtNumTwo').value);
        var objCompute = new Compute(initialValue, numOne);
        personList.push(objCompute);

        console.log(personList);

        for(var i = 0; i < personList.length; i++) {
            if(rdoAdd.checked) {
                //display += objAccount.addNum(); 
                display = "<tr>";
                display += "<td>" + (personList[i].addNum()) + "</td>";
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();

            } else if(rdoMinus.checked){
                //display += objAccount.minusNum();
                display = "<tr>";
                display += "<td>" + (personList[i].minusNum()) + "</td>"; 
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();
        }
    }
}

//Constructor Function
function Compute(initialNum, numOne) {
this._initialNum = initialNum;
this._numOne = numOne;


this.addNum = function() {
    this._initialNum += this._numOne;
    return this._initialNum;
};

this.minusNum = function() {
    this._initialNum -= this._numOne;
    return this._initialNum;
};
}

Ответы [ 2 ]

0 голосов
/ 26 августа 2018
  var valueEl = document.getElementById('value');
  var addEl = document.getElementById('add');
  var resultEl = document.getElementById('result');
  var calculateEl = document.getElementById('calculate');
  var initialValue = 1000;

  function appendResult(result) {
    var liEl = document.createElement("li");
    liEl.innerHTML = result;
        resultEl.appendChild(liEl);     
  }

  function handleClickCalculate() {
    var operand = addEl.checked ? 1 : -1;
    var value = +valueEl.value * operand;
    initialValue += value
    appendResult(initialValue);
  }

  calculateEl.addEventListener('click', handleClickCalculate)
  appendResult(initialValue);

jsFiddle

0 голосов
/ 26 августа 2018

Поскольку HTTP не имеет состояния и вы хотите выполнять операции над двумя различными действиями, вам нужно будет хранить результат каждого действия в каком-то месте.Для простейшего примера вы можете создать скрытое поле на своей HTML-странице.Это может иметь значение 10000, когда ваш HTML загружается в первый раз, и обновлять его значение после выполнения каждого действия.

Предположим, у вас есть следующее скрытое поле в вашем HTML:

<input type=“hidden” id=“persistedResult” value=“10000” />

Вот ваш обновленный printResult метод:

function printResult() {
        var display = "";
        var initialValue = parseInt(document.getElementById(‘persistedResult’).value);
        //var objAccount = new Compute(initialValue, numOne);
        var rdoAdd = document.getElementById("rdoAdd");
        var rdoMinus = document.getElementById("rdoMinus");
        var numOne = parseInt(document.getElementById('txtNumOne').value);
        //var numTwo = parseInt(document.getElementById('txtNumTwo').value);
        var objCompute = new Compute(initialValue, numOne);
        personList.push(objCompute);

        console.log(personList);
        var newValue = 0;
        for(var i = 0; i < personList.length; i++) {
            if(rdoAdd.checked) {
                //display += objAccount.addNum(); 
                newValue = personList[i].addNum();
                display = "<tr>";
                display += "<td>" + (newValue) + "</td>";
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();

            } else if(rdoMinus.checked){
                //display += objAccount.minusNum();
                newValue = personList[i]. minusNum();
                display = "<tr>";
                display += "<td>" + (newValue) + "</td>"; 
                display += "<tr>";
                tblResult.innerHTML += display;
            resetx();
        }
    }
    document.getElementById(‘persistedResult’).value = newValue;
}

Примечание: Это примитивный пример, который поможет вам добиться устойчивости данных.Как правило, данные будут сохранены на сервере.

Этот код заботится о сценарии, когда в списке присутствует только один человек, что является подходом в вашем текущем примере кода.Вам нужно будет улучшить логику, если вы хотите, чтобы это работало на множестве людей.

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