【问题标题】:Script is not running when added dynamically动态添加时脚本未运行
【发布时间】:2016-11-01 22:31:34
【问题描述】:
{include file="head.tpl" title="Combate"}
{include file="navBar.tpl" dir=$dir}
<table id="CombatLister">

</table>

Nombre: <input type="text" id="nombrePJ">  
AC <input type="number" id="ACPJ">  
Iniciativa <input type="number" id="Init">
<button id="añadirParty" onclick="addPJButt()">Añadir</button>



<script>

function addPJButt(){
   var name=document.getElementById("nombrePJ").value;
   var ac=document.getElementById("ACPJ").value;
   var iniciativa=parseInt(document.getElementById("Init").value);
   addPJ(name,ac,iniciativa);
}
function addPJ(nombre,ac,init){
    var table=document.getElementById("CombatLister");
    var row=table.insertRow(0);
    var cellNombre=row.insertCell(0);
    var cellInit=row.insertCell(1);
    var cellAc=row.insertCell(2);
    cellNombre.innerHTML=nombre;
    cellInit.innerHtml=init;
    cellAc.innerHtml=ac;
}

</script>
<script>
{$x=0}
{foreach $party as $pj}

addPJ({$pj.nombre},{$pj.ac},{$pj.init})

{/foreach}
</script>

我有一个 smarty 模板,它使用来自另一个页面的数组,将它添加到“CombatLister”表中。但是,由于某种原因,addPJ() 脚本没有运行。我只是在学习 Javascript 的技巧,所以我可能跳过了一些东西,但到目前为止,我没有得到关于它为什么不起作用的答案。

我尝试使用 addPJButt() 检查 addPJ() 脚本是否错误,但该脚本正在运行:当我将数据放在输入类型上时,它们会正确添加名称。

我不认为这是 Smarty 的问题。检查页面的源代码是否相似,将其写在我调用 $pj 的地方:

<script>

    addPJ(Galahad,14,5);

</script>

PS:作为一个额外的问题,但不是那么重要,在 addPJ 的 insertCell 方法中,只添加了第一个单元格。

【问题讨论】:

    标签: javascript php html dom smarty


    【解决方案1】:

    addPJ(Galahad,14,5); 正在寻找未定义的变量Galahad

    您需要引用它,以便将其打印为 javascript 字符串

    试试

    addPJ('{$pj.nombre}',{$pj.ac},{$pj.init})
    

    注意:我已经很多年没有和 smarty 合作了,假设引号是文字

    【讨论】:

      猜你喜欢
      • 2022-01-07
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 2017-04-22
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多