Я хотел бы выделить основные математические функции (сложение, вычитание и т. Д.) Для разработки на 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>
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";
Остальное и собрать все вместе теперь зависит от вас :) Удачи учиться :)
В 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;
}
Для правильного извлечения входных значений используйте value
, а не innerHtml
.
Полученные значения - это strings
, поэтому вам необходимо проанализировать их до numbers
(с parseInt
), прежде чем использовать их в математике.
function math() {
const numb = document.getElementById("number").value;
const mod = document.getElementById("modifier").value;
sum = document.getElementById("sum").innerText = parseInt(numb) + parseInt(mod);
}
Тег формы имеет атрибут action
. Это означает, что страница отправит вашу информацию на указанную страницу. Вы можете использовать jQuery, чтобы предотвратить отправку формы.
$("#yourFormId").on("submit",function(event){event.preventDefault()})
Вы также можете отредактировать сам атрибут формы action
, чтобы предотвратить его отправку.
<form id="frm1" action"javascript:void(0);">
Попробуйте это, если вы хотите отобразить сумму в элементе html:
document.getElementById("sum").innerHTML = sum;
Но более точный Вопрос поможет!
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.