0

我知道您可以使用以下代码忽略标题属性作为表单的错误消息:

$("#myForm").validate({
  ignoreTitle:true
});

但是,我想知道这是否可以针对单个字段完成。我问的原因是因为我想让我的一个字段返回包含 HTML 的消息,而不仅仅是字符串消息。

有没有办法有条件地将 HTML 放入title属性中?

4

2 回答 2

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/

请参阅文档。

messages , Options, Default:所用方法的默认消息

定义自定义消息的键/值对。键是元素的名称,值是要为该元素显示的消息。可以使用包含每个规则的特定消息的另一个映射来代替普通消息。覆盖元素的标题属性或方法的默认消息(按此顺序)。每条消息都可以是字符串或回调。回调在验证器的范围内被调用,规则的参数作为第一个参数,元素作为第二个参数,它必须返回一个字符串以显示为消息。

于 2013-01-31T16:12:56.197 回答
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>
于 2013-01-31T19:19:01.160 回答