如何使通用Jscript函数与动态表单一起使用

时间:2016-01-22 17:55:55

标签: javascript function generics field

我有这段代码:

<script type="text/javascript">
function populate(){
     s1 = document.ins_form.servizio.value;
     valori = s1.split("|");
     document.ins_form.codice.value = valori[0];
     document.ins_form.costouno.value = valori[1];
}
</script>


<form action="" method="post" name="ins_form" id="ins_form">
<select name="servizio" id="servizio" onchange="populate()">
    <option value="">Choose..</option>
    <option value="100|10">choice one</option>
    <option value="302|32">choice two</option>
  </select>

<input type="text" name="codice" id="codice" readonly="readonly" />
<input type="text" name="costouno" id="costouno" readonly="readonly" />
</form>

这是指特定的输入字段(servizio,codice,costouno),它们将由用户的选择填充,具有不同的值,并且效果很好。

我不是JScript的魔术师所以我无法找到一个解决方案来将此功能转换为通用的,以便能够在动态生成的其他字段上使用它,就像:servizio1 ,codice1,costouno1和servizio2,codice2,costouno2和servizio3 ecc ......

希望它有点清楚,谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以将表单元素本身传递给函数:

<script type="text/javascript">
function populate(field1, field2, fromDelimitedString){
   valori = fromDelimitedString.split("|");
   field1.value = valori[0];
   field2.value = valori[1];
}
</script>

<form action="" method="post" name="ins_form" id="ins_form">
<select name="servizio" id="servizio" onchange="populate(document.getElementById('codice'),
document.getElementById('costuono'), document.getElementById('servizio').value)">
    <option value="">Choose..</option>
    <option value="100|10">choice one</option>
    <option value="302|32">choice two</option>
</select>

<input type="text" name="codice" id="codice" readonly="readonly" />
<input type="text" name="costouno" id="costouno" readonly="readonly" />
</form>