为什么我的javascript脚本没有输出?

时间:2016-11-30 15:51:32

标签: javascript html

编辑:我还在学习javascript,这就是为什么会有这么多简单的错误。

我试图为朋友的公司制作一个在线计算器,它有两种类型的员工,他需要选择哪一个输入他们所赚的钱,然后脚本制作计算。

由于某些原因,我的脚本没有输出任何内容,我做错了什么?

这是我的代码:

<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">&nbsp;</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>    

2 个答案:

答案 0 :(得分:0)

相当多的错误,这是修复

&#13;
&#13;
      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">&nbsp;</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;
&#13;
&#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)

您从未定义变量ordenadotipo1。您可以使用

执行此操作
var ordenado="your value";

if (ordenado=tipo1)不是您想要的if。在这种情况下,您只是声明ordenado(未定义)等于tipo1,这也是未定义的。相反,您需要将其更改为

if (ordenado==tipo1)

if (ordenado=="tipo1")

如果"tipo1"是字符串。