如何在原型中使用periodicalupdater更新value属性

时间:2014-09-13 22:54:16

标签: javascript ajax prototypejs

如何在原型中使用periodicalupdater更新value属性?

new Ajax.PeriodicalUpdater('content', '/content/',
{
    method: 'post',
    frequency: 5,
});

这会更新元素内的文本..我想更新值属性..可能吗?

1 个答案:

答案 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;
    }
});