在我的模板中,我有一个country复选框,以及基于country动态变化的省元素。例如,如果我选择美国,省将是一个选择框,其中包括美国。如果我选择其他国家,省将只是一个文本字段。我知道我必须用Javascript来做这件事,但我想知道这个例子中的最佳实践。有什么建议吗?
发布于 2013-07-10 11:29:38
这个问题几乎每天都会在堆叠溢出时出现.如何处理分选的国家->州.?
多个相关选择字段类型的最佳实践是,只有才能从数据库加载第一个选择框,并有一个专用的提交按钮来添加子选择--在您的情况下,可以是“显示状态”或类似的。
当第一次呈现表单时,不要获取,所有可能的子选择。这很容易导致重数据库查询,如果您显示类似于乡村->州->城市的东西.但是->国家对所有国家来说已经太多了。
如果表单是使用“显示状态”按钮提交的,则将相关的子选择与“显示城市”按钮一起添加到表单中,或者如果没有其他子选择将被加载。最后的“保存”按钮。
这样,没有JavaScript的用户可以使用双选择,而不需要最初不需要的子select查询。用JS隐藏第二个select是而不是的最佳实践。
然后,通过AJAX-Loading实现逐步增强,即一个国家的JSON列表,删除“显示状态”按钮,使用JS模板引擎(如手柄或胡子)显示数据,并添加“保存”按钮。
这样,您就不必向客户端浏览器发送太多重复的数据(选项、选项、选项. )。
最后一步是缓存客户端和服务器端,以加快加载时间--甚至可能涉及某种背景预加载,即客户机首选语言的前5种选择。
https://stackoverflow.com/questions/17568493
复制相似问题