MVC与单元测试实践之健身网站(七)-添加计划
计划的制定涉及到周期-动作包-动作的关联操作,在上一篇<计划的添加与重置>完成了周期的设置、动作包的添加,现在要完成的是动作的添加操作。
一 具体功能
a) 在选定了一个大周期具有的天数后,可以对具体的某一天配置动作包。一个动作包下可以有多个动作,比如3天中的第1天配置了两项动作
b) 点击添加,可以继续增加更多的内容
添加界面糅合了局部训练和综合训练的两套逻辑,不同的训练类型操作界面不同。为了复用一部分html元素和js函数,页面搞得很大,最后js函数仍有20多个,有winform的笨重感觉,也许早应该分开两套界面的。
c) 局部训练下,会要求依次选择肌群-肌肉-动作-组数-次数,如果是负重锻炼,还要添加运动负荷。
d) 选择了动作后,会在页面下方加载之前在后台配置的动作说明和图片的形象内容,还要加载运动负荷的单位,上图的俯卧两头起动作没有负重,所以不显示运动负荷的单位。点击图片还可查看原图。这里为了省事,就没有区分缩略图和原图,小图片的位置直接放置缩小的原图。
e) 在周期计划页面,还增加了一项改进,发挥了footable可以设置隐藏列的特色,描述列只显示一部分内容,详细的动作包内容在隐藏的详情列展示,点击前方的箭头可以展开。
二 问题记录
这一篇主要在做前端界面了,菜地一塌糊涂唉,有时一个语句要反复地试好多遍,就像一开始写C#的时候,现在js之类的脚本语言也能写APP甚至服务端了,也许是该考虑专门学学了。这里记录几个印象深刻的问题。
a) html5的placeholder和非空校验
html5自带的placeholder和非空校验比起之前繁琐的js实现好用多了,但在这儿的添加界面用了很多下拉框,下拉框却不能使用placeholder,于是在数据源的第一行添加了特殊的项如“请输入***”之类,但这又带来了另一个问题,select的非空校验不能用了,即使默认选中第一行“请输入***”,也已经有值了。这时需要在为下拉框绑定数据源时单独处理第一行,设置第一行的value=””。
b) 原则上元素的ID、Name是不能相同的,如果相同也可以,但会带来动态显示方面的问题,如果要为这些相同ID或Name的元素设置值,是可以一次性设置的,但如果要取得这个ID或Name的值,js就不知道该取那个元素了。
c) 关于ajax请求的同步、异步、阻塞、响应次序方面还有待了解。