Le soluzioni per le versioni Tooltipster 2.1, 3.0, & 4.0 sono incluse in questa risposta.
NOTA che .tooltipster()
riguarda solo un elemento type="text"
input
nei miei esempi qui sotto. Se il vostro form
contiene altri tipi di elementi di input dati come type="radio"
, type="date"
, textarea
, select
, ecc, quindi è necessario regolare il selettore di conseguenza o creare ulteriori istanze di .tooltipster()
per questi altri elementi. Altrimenti, tutto fallirà con errori.
Tooltipster v2.1
In primo luogo, inizializzare il plugin Tooltipster (with any options) su tutti specifiche form
elementi che visualizzeranno gli errori:
$(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
});
});
In secondo luogo, utilizzare Tooltipster's advanced options lungo con il success:
and errorPlacement:
callback functions built into the Validate plugin per mostrare e nascondere automaticamente le descrizioni comandi come segue:
$(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');
}
});
});
lavoro Demo: http://jsfiddle.net/2DUX2
EDIT: codice aggiornato per sfruttare le nuove funzioni API Tooltipster rilasciato nella versione 2.1 su 2/12/13
UPDATE per Tooltipster v3.0
Tooltipster 3.0 è fuori servizio e come tale non funziona come illustrato sopra. Il codice seguente fornisce un esempio aggiornato. Questa versione ha il vantaggio di non chiamare Tooltipster su ogni tasto quando il messaggio non è ancora cambiato.
(Non dimenticare che hai ancora bisogno di collegare .tooltipster()
ai vostri rilevanti input
elementi come sopra illustrato.)
$(document).ready(function() {
// initialize validate plugin on the form
$('#myform').validate({
// any other options & rules,
errorPlacement: function (error, element) {
var lastError = $(element).data('lastError'),
newError = $(error).text();
$(element).data('lastError', newError);
if(newError !== '' && newError !== lastError){
$(element).tooltipster('content', newError);
$(element).tooltipster('show');
}
},
success: function (label, element) {
$(element).tooltipster('hide');
}
});
});
DEMO utilizzando Tooltipster v3.0: jsfiddle.net/2DUX2/3/
UPDATE per Tooltipster v4.0
Si noti che l'opzione onlyOne
è stata rimossa dalla versione 4.0 del plug-in Tooltipster.
Ho anche sostituito la richiamata success
con unhighlight
. Nei campi "opzionali", il messaggio di errore non è mai stato rimosso quando il campo è stato oscurato successivamente ... perché la funzione success
non viene attivata in queste circostanze. Questo problema non è stato isolato in Tooltipster versione 4, tuttavia il codice seguente risolve il problema.
// initialize Tooltipster on text input elements
$('input[type="text"]').tooltipster({ //find more options on the tooltipster page
trigger: 'custom', // default is 'hover' which is no good here
position: 'top',
animation: 'grow'
});
// initialize jQuery Validate
$("#myform").validate({
errorPlacement: function (error, element) {
var ele = $(element),
err = $(error),
msg = err.text();
if (msg != null && msg !== '') {
ele.tooltipster('content', msg);
ele.tooltipster('open');
}
},
unhighlight: function(element, errorClass, validClass) {
$(element).removeClass(errorClass).addClass(validClass).tooltipster('close');
},
rules: {
....
DEMO utilizzando Tooltipster v4.0: https://jsfiddle.net/h5grrrr9/
Sto cercando di usare le JS, ma ottengo questo errore e non è sicuro come risolverlo come io sono nuovo a JS: TypeError:. $ (...) la convalida non è una funzione  submitHandler : function (form) {// per demo – starbucks
@starbucks, sembra che tu abbia dimenticato di includere il codice per il plugin jQuery Validate. – Sparky
Sì, l'ho risolto. Come posso evidenziare un campo perso usando il tuo codice? Sono nuovo di js e non sono sicuro di come affrontarlo. Grazie! – starbucks