我试图为朋友的公司制作一个在线计算器,它有两种类型的员工,他需要选择哪一个输入他们所赚的钱,然后脚本制作计算。
由于某些原因,我的脚本没有输出任何内容,我做错了什么?
这是我的代码:
<HTML>
<HEAD>
<TITLE>Sum</TITLE>
<style>
input,
label {
display: block;
}
</style>
<script type="text/javascript">
function sum()
{
var num1 = document.myform.ordenado.value;
var num2 = document.myform.valor.value;
if(ordenado=tipo1){
if(valor>650){
var res= parseFloat(valor) * parseFloat(0.45);
}else{
var res= parseFloat(valor) * parseFloat(0.4);
}
}else{
if(valor>650){
var res= parseFloat(valor) * parseFloat(0.45);
}else if(valor<500){
var res= parseFloat(valor) * parseFloat(0.35);
}else{
var res= parseFloat(valor) * parseFloat(0.4);
}
}
document.getElementById('add').value = res;
}
</script>
<h2>Ordenados</h2>
</HEAD>
<BODY>
<FORM NAME="myform">
<div style="float:left;margin-right:20px;">
<label for="ordenado">Tipo de empregado</label>
<select name="ordenado" id="ordenado">
<option value="tipo1">40% - 45%</option>
<option value="tipo2">35% - 40% - 45%</option>
</select>
</div>
<div style="float:left;margin-right:20px;">
<label for="valor">Valor Semanal</label>
<INPUT TYPE="text" NAME="valor" ID="valor" VALUE="" />
</div>
<div style="float:left;margin-right:20px;">
<label for="button"> </label>
<INPUT TYPE="button" NAME="button" Value="=" onClick="sum()" />
</div>
<div style="float:left;margin-right:20px;">
<label for="result">Resultado</label>
<INPUT TYPE="text" ID="add" NAME="result" VALUE="" />
</div>
</FORM>
</BODY>
</HTML>
答案 0 :(得分:0)
相当多的错误,这是修复
function sum()
{
var num1 = document.myform.ordenado.value;
var valor = parseFloat(document.myform.valor.value);
if(num1=='tipo1'){
if(valor>650){
var res= valor * parseFloat(0.45);
}else{
var res= valor * parseFloat(0.4);
}
}else{
if(valor>650){
var res= valor * parseFloat(0.45);
}else if(valor<500){
var res= valor * parseFloat(0.35);
}else{
var res= valor * parseFloat(0.4);
}
}
document.getElementById('add').value = res;
}
&#13;
input,
label {
display: block;
}
&#13;
<HTML>
<HEAD>
<TITLE>Sum</TITLE>
<h2>Ordenados</h2>
</HEAD>
<BODY>
<FORM NAME="myform">
<div style="float:left;margin-right:20px;">
<label for="ordenado">Tipo de empregado</label>
<select name="ordenado" id="ordenado">
<option value="tipo1">40% - 45%</option>
<option value="tipo2">35% - 40% - 45%</option>
</select>
</div>
<div style="float:left;margin-right:20px;">
<label for="valor">Valor Semanal</label>
<INPUT TYPE="text" NAME="valor" ID="valor" VALUE="" />
</div>
<div style="float:left;margin-right:20px;">
<label for="button"> </label>
<INPUT TYPE="button" NAME="button" Value="=" onClick="sum()" />
</div>
<div style="float:left;margin-right:20px;">
<label for="result">Resultado</label>
<INPUT TYPE="text" ID="add" NAME="result" VALUE="" />
</div>
</FORM>
</BODY>
</HTML>
&#13;
缺少引号,ordenado undefined,tipo1和值引用错误,以及未使用的num2。
理解的主要问题&#34;观点是你试图在if语句中分配一个变量。
if(ordenado=tipo1) // the = operator is used for assignment, not comparison
要比较变量,您需要使用比较运算符,==(不进行类型检查)或===(类型检查)。我建议您通过this link了解详情。
除此之外,请注意如何命名变量,不要调用var num1
,然后再尝试通过调用ordenado
来使用它。
我订购了所有这些,但快速查看您的控制台可以让您做同样的事情。祝你好运!
答案 1 :(得分:0)
您从未定义变量ordenado
和tipo1
。您可以使用
var ordenado="your value";
if (ordenado=tipo1)
不是您想要的if
。在这种情况下,您只是声明ordenado
(未定义)等于tipo1
,这也是未定义的。相反,您需要将其更改为
if (ordenado==tipo1)
或
if (ordenado=="tipo1")
如果"tipo1"
是字符串。