0

我想首先说我是 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 ----------

我需要在我的验证功能中添加什么来做到这一点?

对我来说,这听起来很简单,但我就是想不通。

在此先感谢您的帮助。担

4

1 回答 1

2

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

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

本质上,您正在遍历表单,如果任何输入为空,则使用与“id”相同的“for”属性将颜色添加到标签。

于 2012-08-31T01:52:34.223 回答