J'ai une entrée dont le type est défini sur caché, j'ai besoin de changer son type en texte. Je n'arrive pas à comprendre cela ou si c'est possible avec jQueryjQuery: Changer le type d'élément de caché à l'entrée
Répondre
Avec jQuery 1.4, vous pouvez changer le type d'une entrée pendant qu'elle est détachée.
marker = $('<span />').insertBefore('#myInput');
$('#myInput').detach().attr('type', 'text').insertAfter(marker);
marker.remove();
Cela fonctionne un régal. Je ne savais pas à propos de detach(), gentil. – philoye
Je suis d'accord avec @MildFuzz ici - c'est une solution géniale! –
Quelqu'un se soucie de modifier et d'expliquer ce que cela fait réellement? (J'ai commencé ici http://api.jquery.com/detach) – matrixugly
Je ne suis pas sûr que ce soit possible, donc je suggère d'utiliser un div caché pour contenir l'élément d'entrée, qui peut être montré comme nécessaire. Le champ de saisie de texte peut toujours contenir des données même s'il est caché.
Ceci est un bon point pour des raisons d'accessibilité. Vous ne devez pas utiliser une entrée masquée, sauf pour les champs auxiliaires qui ne sont pas destinés à la saisie par l'utilisateur. –
Il est logique de transformer une entrée de texte en entrée masquée lorsque la valeur est connue à l'avance. Dans mon cas, il doit s'agir d'un champ de texte lorsque je souhaite que le visiteur saisisse sa propre valeur OpenID, mais je souhaite que le type devienne un champ masqué lorsque le visiteur sélectionne un fournisseur d'authentification Google, Yahoo ou Facebook, car ces URL sont prédéterminés et ne devraient pas vraiment être modifiés par le visiteur. Il y a des moments où vous pouvez vouloir une étiquette cachée ou div pour contenir des données, mais je ne pense pas que ce soit l'un d'entre eux. – TARKUS
IE ne vous permettra pas de changer le type d'un élément de formulaire pour des raisons de sécurité, donc j'irais avec la suggestion div cachée d'Aram.
Bien que ce soit surtout vrai, Ian Mackinnon a posté une solution ci-dessous qui a fonctionné pour moi. Depuis jQuery 1.4, vous pouvez changer le type d'entrée _if_ s'il est détaché. – kingjeffrey
Voilà comment je ferais ceci:
$("input[type='hidden']").each(function(){
var name = $(this).attr('name'); // grab name of original
var value = $(this).attr('value'); // grab value of original
/* create new visible input */
var html = '<input type="text" name="'+name+'" value="'+value+'" />';
$(this).after(html).remove(); // add new, then remove original input
});
Si vous souhaitez filtrer certains éléments appellent filtre() avant chaque(), comme ceci:
$("input[type='hidden']").filter("[name='whatever']").each(function...
homme facile .. .
$('input[type="hidden"]').each (function() { this.type = 'text'; });
Trigger sur un événement
Avez-vous essayé? –
Oui cela fonctionne comme un charme :) – Bunkerbuster
Overlay.toAnyType = function (c, type) {
var shadow = jQuery(document.createElement(c.context.nodeName));
// Clone attributes to new object.
for (var i = 0; i < c[0].attributes.length; i++) {
var attr = c[0].attributes[i].name;
var val = c[0].attributes[i].value;
if (attr == "type") val = type;
shadow.attr(attr, val);
}
shadow.insertAfter(c);
c.remove();
};
Lorsque c est un objet jQuery; la fonction ci-dessus change l'attribut type. Utilisation:
var inputElemt = jQuery("#input");
Overlay.toAnyType(inputElemt, "text");
fil vieux, mais j'ai récemment besoin de faire quelque chose de similaire, mais avec des champs de fichiers et de les effacer ... Je pense que la même solution pourrait appliquer, mais au moins vous pouvez saisir le contenu dans ce cas.
var temp = $('#hidden-field').val();
$("#container-for-field").html("<input id='not-hidden' type='text' value='"+temp+"'/>");
Cela devrait également résoudre le problème :).
- 1. jquery parent caché
- 2. Champ caché Jquery dans le tableau
- 3. Type d'entrée "caché" par rapport à la zone de texte
- 4. Vérification de type sur les objets Caché
- 5. jquery changer le texte div
- 6. IE7/8, jQuery ui triable, et le contenu caché. O.o
- 7. JQuery: Vérifie si un élément est caché à l'utilisateur
- 8. Comment blanc la valeur du champ caché de Jquery
- 9. Comment changer le type de légende dans Excel?
- 10. jquery, comment savoir div est caché?
- 11. Changer le contexte en parent avec jQuery
- 12. Comment changer le type de contenu en PHP?
- 13. changer mime type de sortie en php
- 14. Silverlight vs débordement = « caché »
- 15. comment changer le type du paramètre dans une expression?
- 16. jquery - comment changer le texte div après envoi du formulaire
- 17. Comment changer l'espace de noms de jQuery?
- 18. Changer le type mime d'un fichier non-php?
- 19. Changer le char-set de la page avec jquery
- 20. changer le contenu de div sur hover, jQuery
- 21. Comment puis-je changer le type de champ sur un GridView à l'exécution avec AutoGenerate = "True"?
- 22. changer de md5 à SHA1, le salage
- 23. lien de téléchargement caché
- 24. Comment changer dynamiquement le contenu d'un iframe en utilisant jquery?
- 25. jQuery hover: disparaître dans un div caché tout en effaçant le "par défaut" un
- 26. Changer l'image de fond avec jQuery
- 27. En jQuery, comment puis-je sélectionner un élément caché?
- 28. jQuery Script de type Captcha
- 29. Jquery et déclencher un clic sur un bouton caché
- 30. Comment changer l'URL avec jQuery?
Duplication de http://stackoverflow.com/questions/1544317/jquery-change-type-of-input-field – thisgeek