Javascript 在指定';突出显示';和';非高亮度';jQuery'中的方法;什么是验证插件?
考虑jQuery验证插件的这个应用程序:Javascript 在指定';突出显示';和';非高亮度';jQuery'中的方法;什么是验证插件?,javascript,jquery,Javascript,Jquery,考虑jQuery验证插件的这个应用程序: (function($) { 'use strict'; $('form[data-behavior="validate"]').validate({ errorElement: 'span', ignore: ':hidden, .select-dropdown', normalizer: function(value) { if (!value) value = ''; if ($(this)
(function($) {
'use strict';
$('form[data-behavior="validate"]').validate({
errorElement: 'span',
ignore: ':hidden, .select-dropdown',
normalizer: function(value) {
if (!value) value = '';
if ($(this).is('[data-currency-mask]')) {
return value.replace(/\$/g, '').replace(/,/g, '');
}
return value;
},
highlight: function(element) {
$(element).addClass('invalid');
$(element.form).find('label[for=' + element.id + ']').addClass('invalid');
},
unhighlight: function(element) {
$(element).removeClass('invalid');
$(element.form).find('label[for=' + element.id + ']').removeClass('invalid');
}
});
})(jQuery);
此自定义验证器向元素及其标签添加/删除错误类“invalid”
。结果如下所示(其中使用Materialize.css):
高亮显示
和取消高亮显示
函数中存在一些代码重复,我希望消除这些重复;此外,似乎我可以使用errorClass
属性(cf.)代替硬编码“无效”
我尝试在传递给
.validate()
的对象中设置errorClass:“invalid”
,然后在高亮显示和取消高亮显示方法中使用errorClass
而不是“invalid”
,但这似乎不起作用。我如何重构这段代码?我没有足够的声誉来发表评论,因为人们不会炒作我的答案,也不会以任何方式来获得声誉
但是,我注意到的第一件事是
如果(!value)值=“”代码>
应该是
if(!value){value='';}
也可以用
value=value | |“”代码>
或者,根据您使用的ECMAscript版本,您甚至可以保存一行代码并在参数中对其进行初始化
normalizer:function(value='')