Javascript 用于数值计算的带变量的If elseif
我有两个文本框来输入数字,并使用javascript对这些数字求和 我有以下条件来显示结果Javascript 用于数值计算的带变量的If elseif,javascript,jquery,html,Javascript,Jquery,Html,我有两个文本框来输入数字,并使用javascript对这些数字求和 我有以下条件来显示结果 如果文本框1(id:left)未定义或值为0=不显示任何输出 如果文本框1(id:left)有值,请选中文本框2(id:right)的值 如果文本框2(id:right)未定义或值为0=不显示任何输出 如果文本框2(id:right)的值不是未定义的\0,请检查文本框1(id:left)的值,如果文本框1的值不是未定义的\0,则显示结果 如果文本框2(id:right)的值不是未定义的值\0,请检查文本框
这里是小提琴设置:我在这里做的正确吗 下面是javascript代码 HTML:
<div class="input-left"><span><input onblur="calc()" class="textbox" id="left" name="count" type="text" size="5" value="" /></span>
</div>
<div class="input-right"><span><input onblur="calc();" class="textbox" id="right" name="count" type="text" size="5" value="" /></span>
</div>
<div id="result"></div>
function calc() {
var a = parseFloat(document.getElementById('left').value) || 0;
var b = parseFloat(document.getElementById('right').value) || 0;
document.getElementById("result").innerHTML = (a + b) || "";
}
试试这个
window.onload = function () {
var left = document.getElementById('left'),
right = document.getElementById('right'),
result = document.getElementById("result");
// encase the logic inside the function
function check(a, b, elem) {
// No need to check for undefined as you using parseFlaot
// So you are setting it to zero before passing the values
// Just pass them to this function
var txt = '';
if (a === 0 || b === 0) {
txt = "Please enter values into the input"
}
else {
txt = a + b;
}
result.innerHTML = txt;
}
left.onkeyup = calc;
right.onkeyup = calc;
function calc() {
var a = parseFloat(left.value) || 0;
var b = parseFloat(right.value) || 0;
// Call the method where logic implemented
// You need to call it whenever the event is triggered
check(a,b, this);
}
}
当测试通过时,您正在使用没有函数/操作调用的“IF”“ELSE IF”语句来运行。只需将测试包含在“calc()”函数中,就可以将整个过程清理干净 像这样:
window.onload = function(){
var left = document.getElementById('left');
var right = document.getElementById('right');
var result = document.getElementById("result");
function calc() {
if ((left.value != undefined) || (right.value != undefined)) {
var a = parseFloat(left.value) || 0;
var b = parseFloat(right.value) || 0;
result.innerHTML = ( a + b ) || "";
} else {
result.innerHTML = "Enter appropriate values";
}
}
left.onkeyup = calc;
right.onkeyup = calc;
}
问题上有jQuery标记,但代码中没有jQuery。您想要jQuery答案还是普通代码?设置的fiddle没有任何jQuery用法。因此,我假设@acr正在寻找普通的javascript代码,它满足1、2和3个条件,但不满足4和5。