这是我的情景。
我在页面中有以下输入。
<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,我尝试在myInput
属性中选择包含name
的所有字段,并遍历每个字段以将其值附加到变量,如下所示:
var myVar = field1Value + field2Value + select1Value;
这可能吗?
答案 0 :(得分:1)
未测试:
var myVar;
$$('input[name="myInput"]').each(function(i) {
myVar += $(i).value; // Might be $(this).value
});
我不再写Prototype代码了,但我认为会起作用。如果没有,它应该让你足够接近完成它。
答案 1 :(得分:1)
正确的解决方案如下:
var myVar;
$$('[name^="myInput"]').each( function(i) {
myVar += i.value;
});
他们选择所有输入的关键,myInput
属性中包含name
的输入正在使用^
符号前的=
符号。所以[name^="myInput"]
是实现这一目标的正确选择器。
答案 2 :(得分:0)
您还可以将类添加到您想要总结的任何字段
var sum = 0;
$$('.addthese').each(function(i){
sum += i.getValue()
});
这使得它更灵活,因为您不必担心表单元素的名称,只要它具有应用于它的类,将添加该值
我使用了getValue()
方法,因为它可以解决DOM中没有value
属性的某些表单元素的问题。