我想首先说我是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 ----------
我需要添加到验证功能中才能执行此操作?
对我而言,这听起来很简单,但我无法理解。
提前感谢您的帮助。 丹
答案 0 :(得分:2)
在if(errors)中,试试这个:
$('#addpartform :input').each(function(){
if ( $(this).val() == "") ){
$('label[for="' + $(this).attr('id') + '"]').css('color', '#fa0008');
}
});
基本上你是循环遍历表单,如果有任何输入为空,则将颜色添加到标签,其中'for'属性与'id'相同。