jQuery 验证未获取选项
jQuery Validation not getting options
我正在尝试自定义我的表单验证但没有成功。
我测试时,消息和自定义错误 class 都没有触发。尽管如此,它似乎仍然有效,因为它在无效字段后显示了标准错误消息。
我的代码:
HTML
<form role="form" method="POST" id="account-edit">
<div class="box-body">
<div class="form-group">
<label for="address">Address</label>
<input type="text" class="form-control" id="address" name="address" placeholder="Endereço">
</div>
<div class="form-group">
<label for="telephone">Telephone</label>
<input type="text" class="form-control" id="telephone" name="telephone" placeholder="Telefone">
</div>
<div class="form-group">
<label for="telephone">Contact-email</label>
<input type="email" class="form-control" id="email" name="contact_email" placeholder="E-mail">
</div>
<div class="form-group">
<label for="telephone">Website</label>
<input type="text" class="form-control" id="website" name="website" placeholder="Website" >
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary">Update Info</button>
</div>
</form>
Javascript:
$('#account-edit').validate({
errorClass: "has-error",
rules: {
email: {
email: true
}
},
messages: {
email: {
email: 'Please enter a valid email format: name@domain'
}
},
highlight: function(element, errorClass) {
$(element).closest('.control-group').addClass(errorClass);
},
unhighlight: function(element, errorClass) {
$(element).closest('.control-group').removeClass(errorClass);
}
});
CSS:
.has-error input {
border: 1px solid red;
}
带有我的代码的 JSFiddle:http://jsfiddle.net/ov8zx694/1/
此外,我设法通过数据属性自定义错误消息。
rules
对象只能使用 name
属性构造。在您的情况下,name
是 contact_email
,而不是 email
...
rules: {
contact_email: {
email: true
}
},
messages: {
contact_email: {
email: 'Please enter a valid email format: name@domain'
}
},
演示:http://jsfiddle.net/ov8zx694/2/
此外,CSS 不起作用,因为您没有任何包含 control-group
class.
的标记
$(element).closest('.control-group').addClass(errorClass);
要么更改标记,使其包含此 class,要么将 class 名称更改为标记中已有的名称...
$(element).closest('.form-group').addClass(errorClass);
我正在尝试自定义我的表单验证但没有成功。
我测试时,消息和自定义错误 class 都没有触发。尽管如此,它似乎仍然有效,因为它在无效字段后显示了标准错误消息。
我的代码:
HTML
<form role="form" method="POST" id="account-edit">
<div class="box-body">
<div class="form-group">
<label for="address">Address</label>
<input type="text" class="form-control" id="address" name="address" placeholder="Endereço">
</div>
<div class="form-group">
<label for="telephone">Telephone</label>
<input type="text" class="form-control" id="telephone" name="telephone" placeholder="Telefone">
</div>
<div class="form-group">
<label for="telephone">Contact-email</label>
<input type="email" class="form-control" id="email" name="contact_email" placeholder="E-mail">
</div>
<div class="form-group">
<label for="telephone">Website</label>
<input type="text" class="form-control" id="website" name="website" placeholder="Website" >
</div>
</div>
<div class="box-footer">
<button type="submit" class="btn btn-primary">Update Info</button>
</div>
</form>
Javascript:
$('#account-edit').validate({
errorClass: "has-error",
rules: {
email: {
email: true
}
},
messages: {
email: {
email: 'Please enter a valid email format: name@domain'
}
},
highlight: function(element, errorClass) {
$(element).closest('.control-group').addClass(errorClass);
},
unhighlight: function(element, errorClass) {
$(element).closest('.control-group').removeClass(errorClass);
}
});
CSS:
.has-error input {
border: 1px solid red;
}
带有我的代码的 JSFiddle:http://jsfiddle.net/ov8zx694/1/
此外,我设法通过数据属性自定义错误消息。
rules
对象只能使用 name
属性构造。在您的情况下,name
是 contact_email
,而不是 email
...
rules: {
contact_email: {
email: true
}
},
messages: {
contact_email: {
email: 'Please enter a valid email format: name@domain'
}
},
演示:http://jsfiddle.net/ov8zx694/2/
此外,CSS 不起作用,因为您没有任何包含 control-group
class.
$(element).closest('.control-group').addClass(errorClass);
要么更改标记,使其包含此 class,要么将 class 名称更改为标记中已有的名称...
$(element).closest('.form-group').addClass(errorClass);