如何使用for循环校验所有输入字段是否均合法?
解决输入字段全合法校验的问题
嘿,我一眼就看出你代码里的逻辑问题啦!你当前的写法是只要遍历到一个合法的字段,就把isValid设为true——哪怕前面的字段不合法,只要最后一个是合法的,最终结果还是true,这当然没法校验所有字段是否都合法啦。
咱们换个思路来改:
- 先默认所有字段都是合法的(把
isValid初始化为true) - 遍历过程中,只要发现任何一个字段不合法(没有
valid类),就把isValid改成false,甚至可以直接跳出循环(不用浪费时间检查剩下的字段) - 最后如果
isValid还是true,就说明所有字段都合法了
修改后的代码如下:
addData (input){ var isValid = true; // 初始默认所有字段合法 for (var i = 0, ii = input.length; i < ii; ++i) { // 检查当前字段是否不合法 if (!$('#' + input[i].id).hasClass('valid')) { isValid = false; break; // 提前终止循环,优化性能 } } if (isValid) { // 所有字段都合法,执行后续操作 //do stuff } }
这样改完后,只有当你的3个输入字段全部带有valid类时,才会进入后续的逻辑,完美解决你的问题~
内容的提问来源于stack exchange,提问作者Nixen85
相关产品推荐
相关产品推荐

