如何在原型中使用periodicalupdater更新value属性?
new Ajax.PeriodicalUpdater('content', '/content/',
{
method: 'post',
frequency: 5,
});
这会更新元素内的文本..我想更新值属性..可能吗?
答案 0 :(得分:2)
通过查看来源,似乎Ajax.PeriodicalUpdater
将其选项直接传递给Ajax.Updater
,后者又支持insertion
选项。文档说insertion
可以是一个字符串,但它留下了一个有用的细节,may be a function。
new Ajax.PeriodicalUpdater('content', '/content/',
{
method: 'post',
frequency: 5,
insertion: Form.Element.setValue
});
这未经过测试,但我认为默认Element.insert
可以替换为Form.Element.setValue
,因为参数的顺序相同
更新: Prototype.js比HTML5旧,因此不支持<progress>
元素。 Form.Element.setValue()
计算出元素的标记名称使用哪种方法,并且它没有progress
的方法,这就是上述方法失败的原因。相反,我们可以编写自己的函数来取代Form.Element.setValue
:
new Ajax.PeriodicalUpdater('content', '/content/',
{
method: 'post',
frequency: 5,
insertion: function (progress, value) {
progress.value = value;
if (value >= progress.max) throw $break;
}
});