Javascript+;Django,简单计算不起作用
我需要对变量列表中的100多个项目在两个数字之间进行简单的除法 在循环中,HTML看起来像: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 }}" />
<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>