有条件显示的替代方法:无
时间:2020-03-06 14:48:24 来源:igfitidea点击:
我继承了一个应用程序,其中display:none用于基于其他输入元素的值来控制输入元素的条件显示。
处理此问题的方式是通过运行一些非常难看的代码来评估字段值并在页面加载期间重置显示属性。每次。
有没有更好的办法?
解决方案
也许我们应该只重新设计使用所有显示的表单:无字段或者重写/重构执行此检查的脚本?如果表格太大,则将其分成几部分,这也会对用户有所帮助。我个人不喜欢每次尝试填写所有内容时表格是否经常更改。
使用显示:没有将它们与JavaScript和CSS结合使用是简单地动态显示或者隐藏DOM元素的最简单方法。也就是说,我们可以通过添加或者删除元素来操纵DOM本身,而不是简单地显示/隐藏它们(例如,使用jQuery)。
如果我们在用户与表单交互时没有动态显示和隐藏元素,则无需使用CSS / Javascript。只需使用服务器端语言(PHP / JSP /其他)就不会输出隐藏的字段。我们将使用较少的带宽,并且即使禁用Java脚本,该表单也可以使用。
是在提交前在每个POST上重塑表单或者重新排序字段的想法。如果是第一个,则显示的字段应在服务器端删除,然后页面才能到达用户。如果我们要谈论的是在帖子发布之前在客户端进行更改(例如,根据某些字段(作为用户类型)的输入,删除不相关的字段),则可以使用JavaScript从DOM中删除字段。
解决方案需要的两件事是:
- 表单必须能在没有javascript的情况下正常运行(即使它们不那么光滑)
- 不要提交用户看不到的字段,除非它们是type =" hidden"的输入标签。如果我们不知道用户是将字段留空还是看不到它,因为后端脚本动态更改了样式,我们只会在后端上使自己困惑。