【发布时间】:2017-07-10 12:57:02
【问题描述】:
我有一堆选择框用于过滤一个大型复杂表,其内容是通过一系列 ajax 查询加载的。随着表格的加载,不仅表格而且选择框过滤器都会更新以反映当前可用的选项。由于此时用户可能已经选择了过滤表格的选项,所以我有一些代码来保留当前选择的值:
if($('#CourseFilter').length) {
selected = $('#CourseFilter').val();
$('#CourseFilter').replaceWith(sel);
if(selected != '') $('#CourseFilter option[value="'+escape(selected)+'"]').prop('selected', true);
} else {
sel.appendTo('#filters'); // Adding fitler for first time.
}
这适用于大多数过滤器,但有一些过滤器,例如 #CourseFilter,会重置为默认值,而不是记住当前的选择。它认为是因为这些列表中的值包含特殊字符,例如-、/ 和\。我试过使用escape,但还是不行。有什么想法吗?
【问题讨论】:
标签: javascript jquery jquery-selectors escaping html-select