我想创建一个简单的网站(因为我刚刚开始学习javascript),其中将仅包含两个二次方程式列表以及每个方程式的三个数字输入。在这三个输入(a,b和c)中,用户应写出二次方程的系数(例如:x^2+x-2=0
-> a:1,b:1,c:-2)。>
这是我的HTML外观:
document.getElementById("button").onclick = function() {
resultScore()
};
function resultScore() {
var score = 0;
if (document.getElementByName('coef1a').value = 1) {
score += 1;
}
if (document.getElementByName('coef1b').value = 1) {
score += 1;
}
if (document.getElementByName('coef1c').value = -2) {
score += 1;
}
if (document.getElementByName('coef2a').value = 1 / 2) {
score += 1;
}
if (document.getElementByName('coef2b').value = 4) {
score += 1;
}
if (document.getElementByName('coef2c').value = -2) {
score += 1;
}
alert(score);
}
<ul>
<li>`x^2+x-2=0`</li>
a: <input type="number" name="coef1a" min="-10" max="10"> b: <input type="number" name="coef1b" min="-10" max="10"> c: <input type="number" name="coef1c" min="-10" max="10"><br><br><br>
<li>`1/2x^2+4x-2=0`</li>
a: <input type="number" name="coef2a" min="-10" max="10"> b: <input type="number" name="coef2b" min="-10" max="10"> c: <input type="number" name="coef2c" min="-10" max="10"><br><br><br>
</ul>
<button type="button" id="button" onclick="alertFunction()">Submit</button>
对于每个正确答案,用户应获得+1分(这样,用户总共可以获得6分)。
单击“提交”按钮后,网站应提醒积分值。问题在于它不会发出任何警报。
答案 0 :(得分:0)
您的错误是:
1-您必须写document.getElementsByName('...')[0] == x
而不是document.getElementByName('...') = x
2-您必须删除以下代码:
document.getElementById("button").onclick = function() {
resultScore()
};
3-您必须将按钮的onclick
更改为resultScore()
将您的JS代码更改为以下代码:
function resultScore() {
var score = 0;
if (document.getElementsByName('coef1a')[0].value == 1) {
score += 1;
}
if (document.getElementsByName('coef1b')[0].value == 1) {
score += 1;
}
if (document.getElementsByName('coef1c')[0].value == -2) {
score += 1;
}
if (document.getElementsByName('coef2a')[0].value == 1 / 2) {
score += 1;
}
if (document.getElementsByName('coef2b')[0].value == 4) {
score += 1;
}
if (document.getElementsByName('coef2c')[0].value == -2) {
score += 1;
}
alert(score);
}
以及您的HTML代码:
<ul>
<li>`x^2+x-2=0`</li>
a: <input type="number" name="coef1a" min="-10" max="10"> b: <input type="number" name="coef1b" min="-10" max="10"> c: <input type="number" name="coef1c" min="-10" max="10"><br><br><br>
<li>`1/2x^2+4x-2=0`</li>
a: <input type="number" name="coef2a" min="-10" max="10"> b: <input type="number" name="coef2b" min="-10" max="10"> c: <input type="number" name="coef2c" min="-10" max="10"><br><br><br>
</ul>
<button type="button" id="button" onclick="resultScore()">Submit</button>
答案 1 :(得分:0)
通过将元素包装成表单,然后构建一个对象来保存所有输入值,您可以以一种更为简单的方式获取值:
let form = document.getElementById("form");
form.onsubmit = ev => {
// prevent form submit
ev.preventDefault();
// Build object to hold form input values
let formData = Object.values(form).reduce((obj, field) => {
obj[field.name] = field.value;
return obj;
}, {});
console.log(formData);
// Do score result operations
resultScore(formData);
};
resultScore = formData => {
var score = 0;
// Double equal sign for the if conditions below
if (formData.coef1a == 1) {
score += 1;
}
if (formData.coef1b == 1) {
score += 1;
}
if (formData.coef1c == -2) {
score += 1;
}
if (formData.coef2a == 1 / 2) {
score += 1;
}
if (formData.coef2b == 4) {
score += 1;
}
if (formData.coef2c == -2) {
score += 1;
}
alert(score);
}
<form id='form'>
<ul>
<li>`x^2+x-2=0`</li>
a: <input type="number" name="coef1a" min="-10" max="10"> b: <input type="number" name="coef1b" min="-10" max="10"> c: <input type="number" name="coef1c" min="-10" max="10"><br><br><br>
<li>`1/2x^2+4x-2=0`</li>
a: <input type="number" name="coef2a" min="-10" max="10"> b: <input type="number" name="coef2b" min="-10" max="10"> c: <input type="number" name="coef2c" min="-10" max="10"><br><br><br>
</ul>
<button type="submit" id="button">Submit</button>
</form>
答案 2 :(得分:0)
多个错误:
document.getElementsByName
必须是复数(不是document.getElementByName
)document.getElementsByName
返回一个NodeList(将其视为数组),因此您必须选择第一个索引 ==
而不是=
(==
的意思是比较,而=
的意思是< strong>将值分配给变量)
document.getElementById("button").onclick = function() {
resultScore()
};
function resultScore() {
var score = 0;
if (document.getElementsByName('coef1a')[0].value == 1) {
score += 1;
}
if (document.getElementsByName('coef1b')[0].value == 1) {
score += 1;
}
if (document.getElementsByName('coef1c')[0].value == -2) {
score += 1;
}
if (document.getElementsByName('coef2a')[0].value == 1 / 2) {
score += 1;
}
if (document.getElementsByName('coef2b')[0].value == 4) {
score += 1;
}
if (document.getElementsByName('coef2c')[0].value == -2) {
score += 1;
}
alert(score);
}
<ul>
<li>`x^2+x-2=0`</li>
a: <input type="number" name="coef1a" min="-10" max="10"> b: <input type="number" name="coef1b" min="-10" max="10"> c: <input type="number" name="coef1c" min="-10" max="10"><br><br><br>
<li>`1/2x^2+4x-2=0`</li>
a: <input type="number" name="coef2a" min="-10" max="10"> b: <input type="number" name="coef2b" min="-10" max="10"> c: <input type="number" name="coef2c" min="-10" max="10"><br><br><br>
</ul>
<button type="button" id="button">Submit</button>
答案 3 :(得分:0)
使用+document.querySelector('input[name="coef1a"]').value === 1
使其正常工作。
请注意,+
用于将值转换为数字,此外,您还必须使用===
进行比较,而不要使用赋值运算符=
。
此外,如果要按名称查询输入,请使用querySelector()
,该参数以任意选择器作为参数,例如input[name="X"]
。
document.getElementById("button").onclick = function() {
resultScore()
};
function resultScore() {
var score = 0;
if (+document.querySelector('input[name="coef1a"]').value === 1) {
score += 1;
}
if (+document.querySelector('input[name="coef1b"]').value === 1) {
score += 1;
}
if (+document.querySelector('input[name="coef1c"]').value === -2) {
score += 1;
}
if (+document.querySelector('input[name="coef2a"]').value === 1 / 2) {
score += 1;
}
if (+document.querySelector('input[name="coef2b"]').value === 4) {
score += 1;
}
if (+document.querySelector('input[name="coef2c"]').value === -2) {
score += 1;
}
alert(score);
}
<ul>
<li>`x^2+x-2=0`</li>
a: <input type="number" name="coef1a" min="-10" max="10"> b: <input type="number" name="coef1b" min="-10" max="10"> c: <input type="number" name="coef1c" min="-10" max="10"><br><br><br>
<li>`1/2x^2+4x-2=0`</li>
a: <input type="number" name="coef2a" min="-10" max="10"> b: <input type="number" name="coef2b" min="-10" max="10"> c: <input type="number" name="coef2c" min="-10" max="10"><br><br><br>
</ul>
<button type="button" id="button" onclick="alertFunction()">Submit</button>