使用Prototype更新隐藏的FIeld

时间:2013-06-19 16:21:10

标签: prototype

我正在尝试使用Prototype更新隐藏表单字段的值。表单字段:

<input id="item_id" name="item_id" value="" type="hidden" />

我正在尝试使用原型更新值:

var additionalVal = ',2';
var itemId = $$('name=["itemid"]');
itemId.value = (itemId.value + ',' + additionalVal);

该元素似乎已更新,如果我使用Web检查器进行查询,则该值已更新。但是,如果我查看隐藏字段,它仍然看起来像这样:

<input id="item_id" name="item_id" value="" type="hidden" />

...空值字段。此外,像这样提交它会在表格中输入一个空列。如果不包含我的整个JS文件(450行),任何人都可以给我一个指针来解决这个问题吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

您在字段名称中输入了拼写错误(itemid而不是item_id)。原型中的$$函数返回一个元素数组。您必须获取数组的第一个元素才能更改其值:

var additionalVal = ',2';
var itemId = $$('name=["item_id"]');
itemId[0].value = (itemId[0].value + ',' + additionalVal);

您也可以通过id获取元素,这样您就不需要获取第一项:

var additionalVal = ',2';
var itemId = $('item_id');
itemId.value = (itemId.value + ',' + additionalVal);

答案 1 :(得分:2)

通过使用原型更新字段的值。您可以使用此代码。

::std::cout << "Before: " typePrint(bounds());