我想询问有关 Javascript 和 Codeigniter 的问题。
我想得到三个整数值比较的结果。我已经尝试过,但结果只显示一个结果,并且结果仅通过。即使我设置了两个结果通过和失败。
这里的代码:[编辑:到目前为止我尝试过的]
function sum_method(){
function sum_method(){
var result = document.querySelector('[name="result"]')[0].value;
var value_from = document.querySelector('[name="value_from"]').value;
var value_to = document.querySelector('[name="value_to"]').value;
var result1 = parseInt(value_from) >= parseInt(result);
var result2 = parseInt(value_to) <= parseInt(result);
if ((result1) == true && (result2) == true)
{
document.querySelector('[name="status"]').value = 'pass';
}else{
document.querySelector('[name="status"]').value = 'fail';
}
}
}
现场测试结果将与要求值 from 和 value to 进行比较,状态将显示比较结果通过或失败
你们能给我看一下好的代码吗?
代码中存在一些问题:
document.querySelector('[name="result"]')[0].value;
是一个语法错误。querySelector
返回单个元素,而不是数组,因此此行会引发错误,并且您的 result
变量永远不会被设置。如果您检查浏览器的开发工具控制台,您会看到此错误。
从您的问题文本中不清楚测试应该检查什么,但根据您的
input
的名称,我认为 result
值应该在 from
和 之间to
要传递的值?例如,from=1 和 to=10,1 到 10 之间的任何值都应该通过?
如果是这样,您只需将测试倒退即可:
var result1 = parseInt(value_from) >= parseInt(result);
var result2 = parseInt(value_to) <= parseInt(result);
from
值是可接受值范围的底部,因此result
必须大于才能通过。并且 result2
是范围的top,因此
result
必须小于才能通过。 如果您在逻辑上遇到问题,请添加一些
console.log()
来检查数字。
// Run the check every time a key is pressed in an input
let allInputs = document.querySelectorAll("input");
allInputs.forEach(function(elem) {
elem.addEventListener("keyup", function() {
sum_method();
});
});
// Run the check
function sum_method() {
// console.log('sum_method');
var result = document.querySelector('[name="result"]').value;
var value_from = document.querySelector('[name="value_from"]').value;
var value_to = document.querySelector('[name="value_to"]').value;
// console.log('result:', result, 'value_from:', value_from, 'value_to:', value_to);
var result1 = parseInt(value_from) <= parseInt(result);
var result2 = parseInt(value_to) >= parseInt(result);
// console.log('result1', result1, 'result2', result2);
if (result1 == true && result2 == true) {
document.querySelector('[name="status"]').value = 'pass';
} else {
document.querySelector('[name="status"]').value = 'fail';
}
}
From: <input type="text" name="value_from" value="1">
To: <input type="text" name="value_to" value="10">
<p>Test Result: <input type="text" name="result"></p>
<p>Status: <input type="text" name="status" readonly></p>
建议
if (lower <= value && value <= higher) {
下面的简化片段。
// Run the check every time a key is pressed in an input
let allInputs = document.querySelectorAll("input");
allInputs.forEach(function(elem) {
elem.addEventListener("keyup", function() {
sum_method();
});
});
// Run the check
function sum_method() {
var result = parseInt(document.querySelector('[name="result"]').value);
var value_from = parseInt(document.querySelector('[name="value_from"]').value);
var value_to = parseInt(document.querySelector('[name="value_to"]').value);
if (value_from <= result && result <= value_to) {
document.querySelector('[name="status"]').value = 'pass';
} else {
document.querySelector('[name="status"]').value = 'fail';
}
}
From: <input type="text" name="value_from" value="1">
To: <input type="text" name="value_to" value="10">
<p>Test Result: <input type="text" name="result"></p>
<p>Status: <input type="text" name="status" readonly></p>