我在这个javascript计算中做错了什么?

时间:2016-12-08 07:29:00

标签: javascript html

我有两个输入可以保存一个值并输入一个值。
calculate()有点做这个工作,但我在控制台出错:
Uncaught TypeError: Cannot set property 'value' of null(…)
但对calculate()我只得到那个错误!

    if($sal>10){
         echo '<td>
         <input type="text" oninput="calculate()"  name="monthly_sum_019" id="monthly_sum_019" value="">
         <input type="hidden" class="input toggle all" id="monthly_sum_019" oninput="calculate()" value="" placeholder="'.$sal.'"></td>';       
    }else{
         echo '<td>
         <input type="text" oninput="calculate()"  name="monthly_sum_019" id=""  value="">
         <input type="hidden" class="input toggle all" id="monthly_sum_019" oninput="calculatez()"  value="'.$sal.'"></td>';
        }

有2个输入返回计算结果:

if($sal>10){
     echo '<td>
     <input type="text" id="result" name="reward_019"  value=""></td>'; 
}else{
     echo '<td>
     <input type="text" id="result2"  name="reward_019"  value=""></td>';           
    }

和javascript:

<script>
    function calculate() {
        var myBox1 = parseFloat(document.getElementById('monthly_sum_019').value);  
        var myBox2 = parseFloat(document.getElementById('norm').value);
        var myBox3 = parseFloat(document.getElementById('time_hours_019').value);
        var result = document.getElementById('result'); 
        var myResult = (myBox1 / myBox2) * myBox3;

    result.value = myResult.toFixed(2);
    }   
</script>
<script>
    function calculatez() {
        var myBox1 = parseFloat(document.getElementById('hourmoney').value);    
        var myBox3 = parseFloat(document.getElementById('time_hours_019').value);
        var result2 = document.getElementById('result2');   
        var myResult = myBox3 * myBox1;
            result2.value = myResult.toFixed(2);                
    }
</script>

有什么问题?

1 个答案:

答案 0 :(得分:1)

通常Cant do something of NULL表示您尝试选择元素,但它不会在DOM中显示。

我看到您尝试选择标识为result2的元素,但在您提供的代码中,我看到$sal > 10 == true时您没有为此元素添加元素。

由于它是PHP代码, 可以在ifelse部分具有相同的ID(但多次不在同一部分中)。