2010-03-16 3 views

Répondre

4

appuyant sur la réponse de Pim, vous pouvez associer le drapeau changed pour chaque champ de texte utilisant l'API de données de jQuery.

// initially, assign changed to false for all text fields 
$("input:text").data("changed", false); 

// if any field changes, set its changed flag to true 
$("input:text").change(function() { 
    $(this).data("changed", true); 
} 

// finally on submission, get all text fields that did not 
// change by checking their "changed" property 
var unchangedItems = $("input:text").filter(function() { 
    return $(this).data("changed") === false; 
}); 
+0

bien mieux que mon idée globale de drapeau. belle solution! –

+0

sachez que changer la valeur d'une entrée avec javascript ne déclenche pas l'événement 'changed' –

+0

@Andrew Bullock - oui, mais vous pouvez mettre un $ ('fieldIChanged'). Trigger (" change "); dessus quand vous le changez de cette façon :) où 'fieldIChanged' est le sélecteur pour cet élément (ceci?) –

2

Vous pouvez utiliser le plugin jQuery Validate.

+0

ooo! Nouvelle version! 1.7 est compatible avec jQuery 1.42. –

1

Bassicly, vous venez de dire qu'il n'a jamais été changé, et quand il cahnges, vous définissez un dicton du pavillon a été modifié:

var changed = false; 
$('#textfield').change(function(){ 
    changed = true; 
}); 
if(changed){ 
    $('.textbox').each(function(){ 
     $(this).addClass('.highlighted'); 
     //or something like this, whatever you want to do to highlight them 
    }); 
} 
Questions connexes