2010-12-13 17 views
1

J'utilise JQuery pour masquer une partie d'un formulaire et basé sur une question qui a 2 boutons radio: "oui" mappé à 1 et "non" à 0, je fais cette partie du formulaire apparaît pour que l'utilisateur puisse le remplir.JQuery Masquer une partie d'un formulaire et éviter l'auto-complétion du navigateur

Ceci est la partie en charge de celui-ci. Désolé mon JQuery suce:

function appear(speed) { 
    if ($("input[name='fillProfileNow']:checked").val() == "0") { 
     $("#profileFields").hide(speed); 
    } 
    else { 
     $("#profileFields").show(speed); 
    } 
} 

$(document).ready(function() {   
    $("#profileFields").css("display","none"); 
    appear(''); 
}); 

$("input[name='fillProfileNow']").change(function() { appear('slow'); }); 

Mon problème est que j'ai réalisé aujourd'hui tester ma forme, que Chrome utilise le formulaire autocomplétion basé sur mon histoire pour remplir ces champs cachés. Le problème est que les données utilisées sont de la merde car parfois je ne dis pas toujours la vérité, donc une erreur de validation se produit, mais elle n'est pas affichée car je n'ai pas coché le bouton radio qui rend cette partie du formulaire.

Est-il possible d'éviter cela? peut-être réinitialiser les champs s'ils sont cachés? est-ce normal?

Répondre

1

Essayez d'ajouter autocomplete=off aux entrées:

$("input[name='fillProfileNow']:checked").attr("autocomplete", "off").val() 
+0

Je ne sais pas ce que cela fait. Je suppose que ce que cela fait est de vérifier le bouton radio si l'une des entrées cachées est remplie, non? – maraujop

+0

L'attribut 'autocomplete = off' indique aux navigateurs de ne pas utiliser la saisie semi-automatique sur ce champ. –

+0

Ok, merci pour le conseil, je l'apprécie vraiment. – maraujop

1

Et essayez de définir la propriété defaultChecked null:

$("input[name=fillProfileNow]").attr('defaultChecked', null); 

ou:

$("input[name=fillProfileNow]").each(function() { this.defaultChecked = null }); 
+0

Par défaut, il y a 2 boutons radio fillProfileNow_0 et fillProfileNow_1 un pour la réponse "oui" et un pour "non". Faire ce que vous dites ne résout pas le problème de saisie semi-automatique, désolé. – maraujop