我正在构建一个分面搜索系统,该系统在侧边栏中有输入(分面是复选框),并在页面标题中输入(主查询框)。当用户提交搜索时,所有这些输入都会同时提交。
我能想到的唯一方法是将整个页面包装在 HTML 表单标记中。类似于以下伪html:
<form>
<div id='header'>
<logo/>
<input id='q'/>
<!-- a bunch more stuff -->
</div>
<div id='sidebar'>
<div id='sidebar-facets-subsection'>
<input id='facet1'/>
<input id='facet2'/>
<input id='facet3'/>
<!-- a bunch more stuff -->
</div>
<div id='sidebar-form-subsection'>
<form id='unrelated-form'>
<input id='unrelated-input-1'/>
<input id='unrelated-input-2'/>
</form>
</div>
</div>
<!-- a bunch more stuff -->
</form>
这会起作用,除了三件事:
- 正如我上面所指出的,我需要在页面中使用其他表单。
- 我使用不同的 django 模板来生成标题和侧边栏,使模板相互依赖。
- 这真是一团糟,因为侧边栏实际上大约有 100 行,而不是 3 行。
有没有一种我不知道的更聪明的方法,或者创建巨大的 HTML 表单是常态?在这种情况下,使用 Javascript 以某种方式以更正常的形式生成输入条目会更好吗?还是这是唯一的选择?
有什么创造性的解决方案或想法吗?