Я хотел бы выделить основные математические функции (сложение, вычитание и т. Д.) Для разработки на JavaScript. Входные параметры должны быть с веб-страницы HTML, а не с JavaScript и возвращать результат на той же HTML-странице.

function math() {
  //document.getElementById("frm1").innerHTML;
  var numb = document.getElementById("number").innerHTML;
  var mod = document.getElementById("modifier").innerHTML;
  console.log(numb);
  console.log(mod);
  var sum = 1; //numb + mod; //the 1 is a placeholder
  console.log(sum);
  sum = document.getElementById("sum").innerHTML;
}
<form id="frm1" action="randScript.js">
  Number: <input type="int" name="number" id="number"><br> Modifiers: <input type="int" name="modifier" id="modifier"><br>
  <input type="button" onclick="math()" value="Submit">
</form>
<p id="sum"></p>
0
Andon1379 23 Окт 2019 в 14:45
1
Привет и добро пожаловать в SO. С какой именно проблемой вы столкнулись? См. stackoverflow.com/help, чтобы узнать, как улучшить свой вопрос. :)
 – 
DaggeJ
23 Окт 2019 в 14:52
Прочтите Как работает принятие ответа?. Не редактируйте свой вопрос, добавляя слово «решено».
 – 
Quentin
25 Окт 2019 в 17:56

5 ответов

Во-первых: тип - текст - нет "int"

 Number: <input type="text" name="number" id="number">

Во-вторых: если мы немного прочитаем документацию, мы также выясним, как вставить alue в часть JS.

  var numb = document.getElementById("number").value;

Вот теперь вы можете делать свою дальнейшую домашнюю работу;)

В-третьих: вернуть вещи: либо использовать другой ввод. Они работают двумя способами.

 document.getElementById("result").value="I did not do my homework alone"

Или вы размещаете div где-нибудь с идентификатором

<div id="result"> </div>

И теперь вы действительно можете использовать innerHTML в js

 document.getElementById("result").innerHTML="I am too lazy";

Остальное и собрать все вместе теперь зависит от вас :) Удачи учиться :)

0
Thomas Ludewig 23 Окт 2019 в 14:57

В HTML нет типа int для ввода формы, вы можете узнать здесь о типах ввода: Типы ввода HTML-формы

<form id="frm1" >
        Number1: <input type="number" name="number" id="number1"><br>
        Number2: <input type="number" name="number" id="number2"><br>
        Modifiers: <input type="text" name="modifier" id="modifier"><br>
        <input type="button" onclick="math()" value="Submit">
</form>
<p id = "sum"></p>


<script type="text/javascript">

    function math() {  
  var numb1 = parseInt(document.getElementById("number1").value);
  var numb2 = parseInt(document.getElementById("number2").value);
  var mod = document.getElementById("modifier").value;
  if(mod == '+'){
    var sum = numb1 + numb2;


  }else if(mod == '-'){
    var sum = numb1 - numb2;

  }else if(mod == '*'){
    var sum = numb1 * numb2;
  }
  if(sum === undefined){
    alert('invalid inputs');
    return false;
  }else{
    document.getElementById("sum").innerHTML = sum; 
  }

  return true;


}
0
Akshay Bande 23 Окт 2019 в 15:05

Для правильного извлечения входных значений используйте value, а не innerHtml.

Полученные значения - это strings, поэтому вам необходимо проанализировать их до numbersparseInt), прежде чем использовать их в математике.

function math() {
  const numb = document.getElementById("number").value;
  const mod = document.getElementById("modifier").value;
  sum = document.getElementById("sum").innerText = parseInt(numb) + parseInt(mod);
}
0
Konrad Słotwiński 23 Окт 2019 в 15:55
Ответы, содержащие только код, обычно не так полезны. Почему не работал код OP? Как ваш код решает эту проблему?
 – 
3limin4t0r
23 Окт 2019 в 15:23

Тег формы имеет атрибут action. Это означает, что страница отправит вашу информацию на указанную страницу. Вы можете использовать jQuery, чтобы предотвратить отправку формы.

$("#yourFormId").on("submit",function(event){event.preventDefault()})

Вы также можете отредактировать сам атрибут формы action, чтобы предотвратить его отправку.

<form id="frm1" action"javascript:void(0);">
0
4424dev 23 Окт 2019 в 14:53

Попробуйте это, если вы хотите отобразить сумму в элементе html:

document.getElementById("sum").innerHTML = sum;

Но более точный Вопрос поможет!

0
Strohhut 23 Окт 2019 в 14:58
Теперь я получаю сообщение об ошибке: "сумма не определена"
 – 
Andon1379
23 Окт 2019 в 15:05
Используется ли var sum = 1 до того, как мой код был обработан?
 – 
Strohhut
23 Окт 2019 в 15:24