验证函数,并循环遍历对象以获得更好的性能
Validation function, and looping through objects to find better performance
我有一个验证函数,到目前为止,下面的代码做了我想要的,传入所有的$('.required')类,然后循环遍历它们以检查它们的每个值。如果它们都不等于空字符串,则在所有字段至少有一个字符时启用next按钮。
我只是好奇是否有更好的方法来完成同样的任务,或者如果有人有任何速度性能增强也会很棒,谢谢!
validate : function (requiredArray) {
var valueObj = {};
for(var i = 0; i < requiredArray.length; i++) {
valueObj[i] = 'input#'+requiredArray[i].id;
$(valueObj[i]).on("keyup mouseup", function (e) {
for (var j = 0; j < Object.keys(valueObj).length; j++) {
if($(valueObj[j]).val() !== '') {
$('.btn-success.nextButton').removeClass('disabled');
} else {
$('.btn-success.nextButton').addClass('disabled');
return;
}
}
});
}
}
如果你使用一个通用的类required
作为你所有的输入,那么你可以试试这个:
validate: function() {
var $inputs = $('input.required'),
$button = $('.btn-success.nextButton'),
hasEmpty = $inputs.filter(function(){ return !this.value; }).length;
$inputs.on('keyup mouseup', function() {
if (hasEmpty) return false;
$button.removeClass('disabled');
});
}
我不确定你的结构是什么,但你应该把事件从验证逻辑中分离出来,例如:
var $inputs = $('input.required'),
$button = $('.btn-success.nextButton');
function validate() {
return $inputs.filter(function(){ return !this.value; }).length;
}
$inputs.on('keyup mouseup', function() {
if (!validate()) return false;
$button.removeClass('disabled');
});
Id应该少用,类更方便。
我是这样让它工作的:
$inputs.on('keyup mouseup', function() {
if (CMS.validate()) {
$('.btn-success.nextButton').addClass('disabled');
return false;
}
$('.btn-success.nextButton').removeClass('disabled');
});
相关文章:
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 什么对性能更好:每个元素的事件或一个具有委派的事件
- 哪一个在访问数组长度方面的性能更好
- 不要为机器人(谷歌和其他)加载JS脚本以获得更好的性能
- 优化javascript/jQuery以获得更好的性能
- 更好的性能?200+ 个单独的结果页面或 200+ 个条件(如果还有其他梯形图或开关大小写?)在 Javascript/
- 如何替换getImageData和putImageData以获得更好的性能
- 使用类与 ids 用于多个 li 元素示例 20,具有 KNOCKOUT 和 jQuery,性能和可保留性更好
- 无论如何,优化此视差脚本以获得更好的性能
- 这些jQuery JavaScript中的哪一个将具有更好的性能
- 打字稿 0.9.1 : 非常慢的智能感知 我应该回到 0.8.3 以获得更好的性能吗?
- 向 DOM 添加一个简单的图像标记,而不是使用 GWT 控件以获得更好的 JS 运行时性能
- 性能方面:拥有许多小型 ajax php 控制器脚本还是一个大型脚本更好
- 在性能方面使用.delete()更好吗
- jQuery:通过检查绑定元素是否存在,可以获得更好的性能
- 预排序数据或Angular orderBy哪个性能更好
- 如何在地图上绘制标记以获得更好的性能
- 如何通过画布从Html 5视频中获得更好的性能
- 隐藏HTML元素的性能更好的方法是什么
- kendou网格的更换,需要一种具有更好性能的网格