在for循环中将颜色作为JQuery变量

时间:2015-09-11 14:02:40

标签: javascript jquery

我有一个for循环用于验证表单中的字段,我根据验证是否通过来应用或禁用某些类。

见下文

function inlineValidate(t, o, c) {
var i;
for (i in o) {
    $(t).parent().find(i)[o[i]]();
} 
$(t).css("border-color", c);
};

另外我有一个颜色变量,我已在我的代码中的其他地方使用过,我想将其应用于上面的“c”参数:

var grey = {'border-color': '#ccc'};
var red = {'border-color': '#ff999'};

下面是我尝试使用颜色变量的每个函数:

$(".validName").each(function() {

    if ($(this).attr('data-req')){
        var val = $(this).val();
        var minLength = defaultMinNameLength
        if (validateName(val) && validateLength(val,minLength)){
            inlineValidate(this, { '.correct': 'fadeIn', '.incorrect': 'hide' },grey);
        } else {
            errors++;
            inlineValidate(this, { '.correct': 'hide', '.incorrect': 'fadeIn' }, red);
        }
    }
});

我可以看到“border-color”有点重复,所以我尝试从for循环中删除“border-color”,如下所示:

$(t).css(c);

但它不起作用。有没有人有任何想法?

谢谢!

1 个答案:

答案 0 :(得分:2)

使用.css仅仅设置 边框颜色是不够的 - 默认情况下边框宽度为0px。

你可以这样做:

var c = {'border-color':'#ff9999','border-width':'1px','border-style':'solid'};

或者你可以这样:

var c = {'border':'1px solid #ff9999'};

实例:http://jsfiddle.net/caoo0zgd/