2013-05-06 2 views
-2

Возможно ли интегрировать jquery validator с какой-то подсказкой?jquery validator с подсказкой

Вот что я пытаюсь сделать: У меня есть контактная форма, в фокусе любых полей, мне нужна подсказка в режиме реального времени, которая направляет посетителя в то, что вводить, и как только всплывающая подсказка будет довольна значение поля, оно отображает «принято». До тех пор он сообщает об ошибке, например. «Имя должно быть не менее 5 символов» или «Вы должны ввести действительный адрес электронной почты».

Затем на отправке Я хочу показать эти всплывающие подсказки для всех тех, которые не были приняты. Я также хочу, чтобы они затухали и анимировали то же самое, что и при onfocus. Я также хочу, чтобы эти всплывающие подсказки исчезали, когда я инфокусируюсь для одного из полей, а поле, в котором я инфокусирован, не может пропустить анимацию fadeIn, поскольку она уже отображается.

Любые идеи о том, как это сделать легко?

+0

у вас может быть div на какой-либо невидимой области страницы, а когда использование пытается ввести или изменить текстовое поле, вы перемещаете этот div рядом с текстовым полем с введенными вами инструкциями. P.S: вам нужен только один div для всех полей. –

+0

Почему мне нужен один div для всех полей? Будут ли элементы внутри div, которые будут показаны и скрыты? то есть, если я набираю адрес электронной почты, мне нужна только подсказка для электронной почты, а не другие поля. – Source

+0

Я имею в виду, один div, и вы вводите другое сообщение для каждого поля. –

ответ

1

Вот все, что вам нужно, это имеет анимации тоже >> FIDDLE Example

HTML

<input type="text" id="txt1" /> 
<input type="text" id="txt2" /> 
<div id="tt"></div> 

CSS

#tt{width:0px; height:0px; visibility':hidden; margin-left: -500px; background-color:red;} 

JQuery

$('#txt1').focus(function(){ 
$('#tt').css({'width':'200px', 'height':'50px', 'visibility':'visible', 'background-color':'red'}).html('you clicked text field ONE').animate({'marginLeft':'10px'},1000) 
}); 
$('#txt2').focus(function(){ 
    $('#tt').css({'width':'300px', 'height':'50px', 'visibility':'visible', 'background-color':'yellow'}).html('you clicked text field TWO').animate({'marginLeft':'150px'},1000) 
}); 
+1

OP ищет интеграцию с плагином jQuery Validate. – Sparky

1

Рабочая Демо: http://jsfiddle.net/bvu5f/

Этот ответ использует плагин JQuery под названием Tooltipster вместе с плагином JQuery Validate.

Во-первых, инициализировать плагин Tooltipster (with any options) на всех конкретных form элементов, которые будут отображаться ошибки:

$(document).ready(function() { 

    // initialize tooltipster on form input elements 
    $('#myform input[type="text"]').tooltipster({ 
     trigger: 'custom', // default is 'hover' which is no good here 
     onlyOne: false, // allow multiple tips to be open at a time 
     position: 'right' // display the tips to the right of the element 
    }); 

}); 

Во-вторых, использование Tooltipster's advanced options вместе с success: and errorPlacement: callback functions built into the Validate plugin автоматически показать и скрыть подсказки следующим образом:

$(document).ready(function() { 

    // initialize validate plugin on the form 
    $('#myform').validate({ 
     // any other options & rules, 
     errorPlacement: function (error, element) { 
      $(element).tooltipster('update', $(error).text()); 
      $(element).tooltipster('show'); 
     }, 
     success: function (label, element) { 
      // $(element).tooltipster('hide'); // normal validate behavior 
      $(element).tooltipster('update', 'accepted'); // as per OP 
     } 
    }); 

}); 

Код использует новые возможности API-интерфейса Tooltipster, выпущенные в версии 2.1 на 2/1 2/13

+0

Хороший плагин, его размер большой, хотя, js + css ~ 41kB, позволяют ли они выбирать блоки кода, которые ему нужны? –

+0

@JEES, я не уверен в этом ... Я только недавно начал заменять qTip2 на [Tooltipster] (http://calebjacob.com/tooltipster/), потому что он проще в использовании и упрощает настройку для последовательного кросс-браузерный вид & feel; плюс Tooltipster имеет некоторые интересные встроенные параметры анимации, аналогичные запросам OP. 41 kb не беспокоит меня слишком много, когда большинство людей больше не используют dial-up. – Sparky

+0

Без сомнения, это вариант экономии времени, если вы хотите универсальную игрушку, но большинство плагинов добавляют размер и больше http-запросов, большинство стильных включает css и js, и это 2 запроса для каждого плагина! лично я предпочитаю писать свои собственные коды. –

Смежные вопросы