背景 我有两个链接在一起的选择表单字段:持续时间和频率。当用户选择频率时,会动态插入持续时间选项。有默认选项,但这些只是为了在用户展开它时该字段不为空。
例如,频率选项是“day”、“other day”和“week”。如果我选择“天”,频率选项将更改为“5 天”、“15 天”和“30 天”。
问题 当用户提交带有错误的表单时,问题就出现了,返回表单时重新填充了所有表单字段,并且突出显示了错误(频率选择字段除外),其选项是动态生成的。它没有突出显示,它的选项是默认选项。
如果用户提交错误,有没有办法让我重新填充这些选项。我们正在做大量的 JavaScript 验证,所以这种情况不应该经常发生,但希望让用户尽可能轻松地获得错误体验。
代码 我正在使用 jquery 和一个名为 cascade 的 jquery 插件将两个字段链接在一起。(http://plugins.jquery.com/project/cascade)
这是我的自定义 JavaScript。
此脚本生成选项列表:
var list1 = [
{'When':'86400','Value':' ','Text':' '},
{'When':'172800','Value':' ','Text':' '},
{'When':'604800','Value':' ','Text':' '},
{'When':'86400','Value':'432000','Text':'5 days'},
{'When':'86400','Value':'1296000','Text':'15 days'},
{'When':'86400','Value':'2505600','Text':'30 days'},
{'When':'172800','Value':'1296000','Text':'15 days'},
{'When':'172800','Value':'2505600','Text':'30 days'},
{'When':'172800','Value':'3888000','Text':'45 days'},
{'When':'604800','Value':'2505600','Text':'4 weeks'},
{'When':'604800','Value':'3715200','Text':'6 weeks'},
{'When':'604800','Value':'4924800','Text':'8 weeks'}
];
function commonTemplate(item) {
return "<option value='" + item.Value + "'>" + item.Text + "</option>";
};
function commonMatch(selectedValue) {
return this.When == selectedValue;
};
这是触发选择选项生成的脚本:
jQuery("#duration).cascade("#frequency",{
list: list1,
template: commonTemplate,
match: commonMatch
})
问题 当表单返回到浏览器并出现错误时,如何获得动态生成的频率选项以重新填充有什么想法吗?可以使用我当前使用的级联插件或其他方法吗?
非常感谢您的帮助。:-)