HTML5-根据输入为输出元素选择公式

HTML5-根据输入为输出元素选择公式,html,formula,output,Html,Formula,Output,我正在设计一个简单的计算器,它有三个输入和一个输出 我想知道是否有可能更改输出元素“使用”的公式,根据使用的输入字段(*) 例如,我们有树输入:输入A、输入B和输入C 如果使用A和B(C为空),则输出公式应为“A+B” 如果使用A和C(B为空),则输出公式应为“A*C” 如果使用B和C(且A为空),则输出公式应为“B/C” 那么,如何根据使用的输入更改输出元素使用的公式 这是一个简单的例子,我希望你能明白这一点:-) 根据要求,下面是一些示例代码 [code] <!DOCTYP

我正在设计一个简单的计算器,它有三个输入和一个输出

我想知道是否有可能更改输出元素“使用”的公式,根据使用的输入字段(*)

例如,我们有树输入:输入A、输入B和输入C

  • 如果使用A和B(C为空),则输出公式应为“A+B”
  • 如果使用A和C(B为空),则输出公式应为“A*C”
  • 如果使用B和C(且A为空),则输出公式应为“B/C”
那么,如何根据使用的输入更改输出元素使用的公式

这是一个简单的例子,我希望你能明白这一点:-)

根据要求,下面是一些示例代码

[code]
    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta charset="UTF-8"></meta>
    <script>
    function Test(){
    <!--alert('Formula change!');-->

    if (input_a.valueAsNumber && input_b.valueAsNumber){
    alert('Formula One');
    o.value=input_a.valueAsNumber+input_b.valueAsNumber;
    }

    if (input_b.value && input_c.value){
    alert('Formula Two');
    o.value=input_a.valueAsNumber*input_c.valueAsNumber;
    }

    if (input_a.value && input_c.value){
    alert('Formula Three');
    o.value=input_b.valueAsNumber/input_c.valueAsNumber;
    }
    }
    </script>
    <style>
    </style>
    <title>Example</title>
    </head>
    <body onload="">
    <form onsubmit="return false" oninput="
    Test();
    <!--o.value=input_a.valueAsNumber+input_b.valueAsNumber;-->
    ">

    <input name="input_a" id="input_a" type="number" step="any" value="" placeholder="Input A"></br>
    <input name="input_b" id="input_b" type="number" step="any" value="" placeholder="Input B"></br>
    <input name="input_c" id="input_c" type="number" step="any" value="" placeholder="Input C"></br>
    </br>
    <output name="o" for="a b c"></output>

    </form>
    </body>
[/code]
[代码]
功能测试(){
if(输入a.valueAsNumber和输入b.valueAsNumber){
警报(“一级方程式”);
o、 值=输入值a.valueAsNumber+输入值b.valueAsNumber;
}
if(输入b.value和输入c.value){
警报(“二级方程式”);
o、 值=输入值a.valueAsNumber*输入值c.valueAsNumber;
}
if(输入a.value&&input c.value){
警报(“三级方程式”);
o、 值=输入\ b.valueAsNumber/input \ c.valueAsNumber;
}
}
例子

我通过使用Eval函数使它工作

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8"></meta>
<script>
function SelectFormula(){
if (input_a.valueAsNumber && input_b.valueAsNumber){
return "input_a.valueAsNumber+input_b.valueAsNumber";
} else if (input_b.value && input_c.value){
return "input_b.valueAsNumber*input_c.valueAsNumber";
} else if (input_a.value && input_c.value){
return "input_a.valueAsNumber/input_c.valueAsNumber";
}
}
</script>
<style>
</style>
<title>Example</title>
</head>
<body onload="">
<form onsubmit="return false" oninput="
o.value=eval(SelectFormula());
">
Input A: <input name="input_a" id="input_a" type="number" step="any" value="" placeholder="Input A"></br>
Input B: <input name="input_b" id="input_b" type="number" step="any" value="" placeholder="Input B"></br>
Input C: <input name="input_c" id="input_c" type="number" step="any" value="" placeholder="Input C"></br>
</br>
Output: <output name="o" for="a b c"></output>
</form>
</body>

函数SelectFormula(){
if(输入a.valueAsNumber和输入b.valueAsNumber){
返回“input_a.valueAsNumber+input_b.valueAsNumber”;
}else if(输入b.值和输入c.值){
返回“输入值编号*输入值编号”;
}else if(输入a.value&&input c.value){
返回“输入值编号/输入值编号”;
}
}
例子
输入A:
输入B:
输入C:

输出:

我宁愿不使用Eval函数,而是设置o.value=。。。直接在函数中不起作用:-(

听起来很琐碎-您尝试了什么?请参阅我的OT:-)中的代码@Alnitak,有关于eval问题的线索吗?(见下文)有人知道如何避免使用Eval函数吗?它是否以任何方式限制输出标记?