|
发表于 2017-5-19 00:29:30
|
显示全部楼层
又来秀js了。真的以为论坛之中没有一个程序员吗?
1,parseInt函数是取整计算,而不是四舍五入计算。既然用到parseInt,那你的意思就是允许用户输入小数是吗?
既然不允许,那你就应该写充分了验证条件,正确的做法是用正则表达式来限制死,根本不让用户输入小数。
或者,进行真正的四舍五入计算,而不是偷懒的用一个isNaN来验证就完事。
2,当用户输入错误的格式后,谁允许你直接清空文本框?你不觉得太粗暴了吗?
例如:用户输入175级时,误录入“175a”,你居然直接清空文本框。
正确的做法是在验证失败后把焦点聚焦在文本框上即可,这样可以保留用户的原样文字,你倒好,直接清空,让用户再重新录入一遍。
你这个obj.value=“”,真是用的多余。
你还用onkeyup动作来触发验证,传统的做法是用onblur。
我完全可以让你的onkeyup失去判断功能,我就不截图了,我分分钟就可以在全部文本框中输入“abc”,“def”之类的字样,并且,让你的最终计算结果为“NaN”。
3,动作按钮置顶,也是醉了。
用户的录入习惯是从上往下录入,录入完成之后,按钮通常放在页面下方才符合用户的操作习惯。
因为这样的话,按钮离最后一个输入框很近,用户顺手就可以点到。
而你却放置在顶部,还要用户再把鼠标拉回到上面去,这种体验合适吗?就像用户回帖时,要到上面去找“回复”按钮一样。
4,td旁边加个width=“200px”不行吗?两列间距离那么远,会不会因对不齐行格看花了眼?
或者,在table边上加个border="1"不行吗?这样至少像个表格样,还清楚。
5,能不用全局变量进行存值吗?尤其是中间值?你不知道这样做的程序员都是最懒惰的程序员吗?懒不是手懒脑子灵的那种懒,是脑子笨的那种懒。
6,又见到销魂的 x1,x2式变量命名法。
又见到销魂的汉语拼音式变量命名法。
7,你的注释在哪?
N周之后,当你读到这段代码:
zshws= parseInt((parseInt((parseInt(parseInt(jn*15/10+30)*13/10)+parseInt((mj*35)/100)+parseInt(dj*zhxg1/100)+parseInt(dj*zhxg2/100)+parseInt(ls*xs/100)+parseInt(ws*15/100))*(1+zhenfa/100))+fs)*(1+(fx-fk)*2/100))+(fx-fk)*5+parseInt(yexing)+parseInt(smf);
你自己知道它代表什么含义吗?
就算你知道含义,你的行缩在哪?
改成下面这样写,不好吗?
zshws = parseInt((parseInt((parseInt( parseInt(jn*15/10+30)*13/10 ) //计算法则1
+parseInt((mj*35)/100) //计算法则2
+parseInt(dj*zhxg1/100) //计算法则3
+parseInt(dj*zhxg2/100) //计算法则4
+parseInt(ls*xs/100) //计算法则5
+parseInt(ws*15/100))*(1+zhenfa/100))+fs)*(1+(fx-fk)*2/100)) //计算法则6
+(fx-fk)*5+parseInt(yexing)+parseInt(smf); //计算法则7
将来一旦计算方式改变了,你再去一点一点的抠你那串连空格都没有的代码,才显得高深?
8,既然要拿来给大家看,能不能加点css样式修饰一下?至少表头,表格背景有点区别吧?就这么原生态的直白的放出来,真的对的起用户吗?
9,什么时代了,还在用原生态的js,该去学学JQuery了,否则,浏览器都未必兼容。
10,态度问题, 这么久了,还看不到你改进,一旦整出个计算规则来,就生怕别人不知道你会js一样,匆忙的来论坛秀,能自己先去横向稍作对比好吗?稍作即可。
想秀也没问题,但你得具备2点,1,严谨性,2,用户体验性。尤其是:用户体验性。别以为论坛上的人都不懂程序,好忽悠的很。
11, 直接贴代码出来,也是醉了。网上多少高手都不敢轻易贴代码出来,人家连贴个效果截图都羞羞答答。
|
|