jQuery验证,改变单独标签的颜色

时间:2012-08-30 22:12:56

标签: jquery css validation colors label

我想首先说我是jQuery的新手,但不是一般的编程。这让我很伤心,我无法在任何地方找到答案。

这是我想要做的事情:

我有一个表格,对于这个例子,我只是要使用我的两个主要要求。我试图输入零件名称和零件号。当用户没有输入其中一个时,我想更改输入框旁边的标签颜色,同时禁用验证的消息部分。

所以,例如。当用户没有输入部件号时,我想更改此信息:

<label for="part_name">Part Name</label>

对于这样的事情:

<label for="part_name" style="color: #fa0008;">Part Name</label>


到目前为止,这是我的代码。

HTML

<div class='type_left'><label for="part_name">Part Name</label></div>
<div class='type_left'><input type="text" id="part_name" name="part_name"></div>

<div class='type_left'><label for="hj_part">hj Part Number</label></div>
<div class='type_left'><input type='text' name='hj_part'></div>

jQuery (注意:这一切都运行正常。我在调试模式下运行,因此它不会尝试提交。)

// Validate "Add Part" form ----------------
//------------------------------------------

$j('#addpartform').validate({
    debug: true,
    rules: {
        part_name: {
         required: true
        },
        hj_part: {
         required: true
        },
    },

    errorPlacement: function(error, element) { },

    invalidHandler: function(form, validator) { 
        var errors = validator.numberOfInvalids();
        if (errors) {
            alert("Hey man, you didn't enter something.")
        }           
    },
    submitHandler: function(form) { alert("works!") }

});

//------------------------------------------
// End "Add Part" form validation ----------

我需要添加到验证功能中才能执行此操作?

对我而言,这听起来很简单,但我无法理解。

提前感谢您的帮助。 丹

1 个答案:

答案 0 :(得分:2)

在if(errors)中,试试这个:

$('#addpartform :input').each(function(){
    if ( $(this).val() == "") ){
        $('label[for="' + $(this).attr('id') + '"]').css('color', '#fa0008');
    }
});

基本上你是循环遍历表单,如果有任何输入为空,则将颜色添加到标签,其中'for'属性与'id'相同。