2

这是我的场景。

我在页面中有以下输入。

<input name="myInput[field1]" value="field1value" type="text" />

<input name="myInput[field2]" value="field2value" type="text" />

<select name="myInput[select1]">
   <option value="1" selected="selected">Option 1</option>
   <option value="2">Option 2</option>
   <option value="3">Option 3</option>
</select>

使用 Prototype,我试图选择包含myInputname属性中的所有字段并遍历每个字段以将它们的值附加到变量中,如下所示:

var myVar = field1Value + field2Value + select1Value;

这可能吗?

4

3 回答 3

1

未经测试:

var myVar;
$$('input[name="myInput"]').each(function(i) {
    myVar += $(i).value; // Might be $(this).value
});

我不再编写原型代码了,但我认为会起作用。如果没有,它应该让你足够接近以完成它。

于 2013-02-23T00:43:29.503 回答
1

正确的解决方案如下:

var myVar;
$$('[name^="myInput"]').each( function(i) {
   myVar += i.value;        
});

它们是选择所有输入的关键,myInput在它们的name属性中包含使用^符号前的=符号。实现这[name^="myInput"]一点的正确选择器也是如此。

于 2013-03-18T19:01:37.117 回答
0

您还可以将类添加到您想要总结的任何字段,如下所示

var sum = 0;
$$('.addthese').each(function(i){
    sum += i.getValue()
});

这使它更加灵活,因为您不必担心表单元素的名称,只要它应用了类,就会添加值

我使用了该getValue()方法,因为它可以解决某些表单元素value在 DOM 中没有属性的问题。

于 2013-02-23T05:48:17.257 回答