使用数组作为JavaScript中的名称来计算输入元素的值

时间:2012-11-11 21:48:17

标签: javascript html arrays function input

我想要的是存储ID为3的数据库对象的总和。(参见下面的输入标签) 我有许多不同的id具有不同的值。我要存储的示例中的值是2。

除此之外,我想使用带有JavaScript的“+”和“ - ”按钮来增加/减少sum [3]的值。所以我创建了一个名为incr和decr的函数来执行此操作:

<script type="text/javascript">
function incr(what)
{
    alert(what);
    what.value ++;

    // rest of the function I left out, it works with a 'normal' name of the input tag
    //but I need to use the array
}    
</script>

how many?<input type="text" size="10" name="sum[3]" value="2" />
<input name="plus" type="button" value="+" onclick="incr(document.sum[3])" />
<input name="min" type="button" value="-" onclick="decr(document.sum[3])" />

我无法让它工作,即使警报没有返回值。任何人

1 个答案:

答案 0 :(得分:4)

这不是最优雅的方法,因为它使用了大量的内联代码,但它解决了您的问题。您的方法出了什么问题,document.sum [3]不是正确的选择器,名称=“sum [3]”输入

<script type="text/javascript">
function incr(what)
{

    what.value ++;
    alert(what.value);
    // rest of the function I left out, it works with a 'normal' name of the input tag
    //but I need to use the array
}    
</script>

how many?<input type="text" size="10" name="sum[3]" value="2" />
<input name="plus" type="button" value="+" onclick="incr(document.getElementsByName('sum[3]')[0])" />
<input name="min" type="button" value="-" onclick="decr(document.getElementsByName('sum[3]')[0])" />

您应该考虑使用jQuery并使用事件处理程序重构代码,而不是使用内联javascript。