Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript+;Django,简单计算不起作用_Javascript_Python_Django_Forms_Jinja2 - Fatal编程技术网

Javascript+;Django,简单计算不起作用

Javascript+;Django,简单计算不起作用,javascript,python,django,forms,jinja2,Javascript,Python,Django,Forms,Jinja2,我需要对变量列表中的100多个项目在两个数字之间进行简单的除法 在循环中,HTML看起来像: <input id="box1{{ item.0 }}" type="text" onkeyup="calculate()" /> <input id="box2{{ item.0 }}" type="text" onkeyup="calculate()" value="{{ item.7 }}"/> <input id="result{{ item.0 }}" />

我需要对变量列表中的100多个项目在两个数字之间进行简单的除法

在循环中,HTML看起来像:

<input id="box1{{ item.0 }}" type="text" onkeyup="calculate()" />
<input id="box2{{ item.0 }}" type="text" onkeyup="calculate()" value="{{ item.7 }}"/>
<input id="result{{ item.0 }}" />

出于某种原因,我无法在循环中使用它,脚本位于我列表中每个项目的循环中,可能是因为JS无法捕获jinja变量{{item}}

所以。。。它现在起作用了,我知道这不是最好的解决方案,但它是:

        <input id="box1{{ item.0 }}" type="text" onkeyup="calculate{{item.0}}()" />
        <input id="box2{{ item.0 }}" type="text" onkeyup="calculate{{item.0}}()" value="{{ item.7 }}"/>
        <input id="result{{ item.0 }}" />

        <script>
        function calculate{{coin.0}}(){
        console.log("{{ item.0 }}");
        var myBox1 = document.getElementById('box1{{ item.0 }}').value;
        var myBox2 = document.getElementById('box2{{ item.0 }}').defaultValue;
        var result = document.getElementById('result{{ item.0 }}');
        var myResult = myBox1 / myBox2;
        result.value = myResult;}
        </script>

函数计算{coin.0}}(){
log(“{item.0}”);
var myBox1=document.getElementById('box1{{item.0}').value;
var myBox2=document.getElementById('box2{{item.0}').defaultValue;
var result=document.getElementById('result{{item.0}');
var myResult=myBox1/myBox2;
result.value=myResult;}

我将函数计算()更改为函数计算{{item.0}()

执行console.log('{item}}')时会发生什么?很抱歉,如果我将console.log(1)更改为console.log('{item}'),我对JS有点陌生,在live页面的源代码中显示正确的信息,函数calculate(){console.log(“001”);查看控制台为命令显示的内容:console.log(myBox1);?将命令放在以下行之后:var myBox1=document.getElementById('box1{item.0}}).value;那么您为循环中的每个
创建了一个名为
calculate()
的函数?这将为最后一个
只剩下一个函数,该项是由所有
字段在按键释放时调用的。BlackJack我想我理解您的意思,但我如何解决这个问题?
        <input id="box1{{ item.0 }}" type="text" onkeyup="calculate{{item.0}}()" />
        <input id="box2{{ item.0 }}" type="text" onkeyup="calculate{{item.0}}()" value="{{ item.7 }}"/>
        <input id="result{{ item.0 }}" />

        <script>
        function calculate{{coin.0}}(){
        console.log("{{ item.0 }}");
        var myBox1 = document.getElementById('box1{{ item.0 }}').value;
        var myBox2 = document.getElementById('box2{{ item.0 }}').defaultValue;
        var result = document.getElementById('result{{ item.0 }}');
        var myResult = myBox1 / myBox2;
        result.value = myResult;}
        </script>