我知道您可以使用以下代码忽略标题属性作为表单的错误消息:
$("#myForm").validate({
ignoreTitle:true
});
但是,我想知道是否可以针对单个字段进行此操作。我问的原因是因为我想让我的一个字段返回一条包含HTML而不仅仅是字符串消息的消息。
有没有办法有条件地将HTML放在title
属性中?
答案 0 :(得分:1)
Quote:有没有办法有条件地将HTML放在标题中 属性?
不,没有。但您可以在messages
选项中为该字段指定自定义消息。
$(document).ready(function(){
$('#myform').validate({
// your other rules and/or options
messages: {
myfieldname: {
myrule: "this is my <b>custom</b> message"
}
}
});
});
(是的,看起来像HTML一样)
工作演示: http://jsfiddle.net/4KGjD/
消息,选项,默认:使用方法的默认消息
定义自定义消息的键/值对。 Key是一个名字 element,为要为该元素显示的消息赋值。代替 普通消息可以是另一个具有特定消息的映射 用过的。覆盖元素的title属性或默认值 方法的消息(按此顺序)。每条消息都可以是一个字符串 或者回调。回调在验证程序的范围内调用 并将规则的参数作为第一个,将元素作为 第二个问题,它必须返回一个String来显示为消息。
答案 1 :(得分:0)
我意识到在我的情况下可能更简单只是在验证之前删除title
属性,如果出现错误则将其添加回去。
所以这里是我使用的Javascript的一般概念:
//BEFORE validation, remove title attribute:
var password=$('#myForm).find('input[type=password]');
var title=password.attr('title');
password.removeAttr('title');
//If there is an error, add back the title attribute
password.attr('title', title);
这是HTML:
<input id="password" title='Password must be at least 8 characters, 1 number, 1 upper and 1 lower case letters' placeholder='At least 8 chars, 1 num, 1 upper'
name="password" type="password" />
<div class='error'>
<ul id='passwordError' style='display:none'>
<li>Password must be at least:</li>
<li> 8 characters </li>
<li> 1 upper, 1 lower case letter</li>
<li> 1 number</li>
</ul>
</div>