Ho un input che è di tipo nascosto, ho bisogno di cambiarlo in testo. Non riesco a capirlo o se è possibile con jQueryjQuery: Cambia tipo di elemento da nascosto a input
risposta
Con jQuery 1.4 è possibile modificare il tipo di un input mentre è staccato.
marker = $('<span />').insertBefore('#myInput');
$('#myInput').detach().attr('type', 'text').insertAfter(marker);
marker.remove();
Questo funziona a meraviglia. Non sapevo di detach(), bello. – philoye
Devi essere d'accordo con @MildFuzz qui: questa è una soluzione fantastica! –
Qualcuno ha cura di modificare e spiegare cosa fa in realtà? (Ho iniziato qui http://api.jquery.com/detach) – matrixugly
Non sono sicuro che sia possibile, quindi suggerirei di usare un div nascosto per contenere l'elemento di input, che può essere mostrato secondo necessità. Il campo di inserimento del testo può ancora contenere dati anche se è nascosto.
Questo è un buon punto per motivi di accessibilità. Non si dovrebbe utilizzare un input nascosto ad eccezione dei campi secondari che non sono destinati all'input dell'utente. –
Ha senso trasformare un input di testo in un input nascosto quando il valore è noto in anticipo. Nel mio caso, dovrebbe essere un campo di testo quando voglio che il visitatore inserisca il proprio valore OpenID, ma voglio che il tipo cambi in un campo nascosto quando il visitatore seleziona un fornitore di autenticazione Google, Yahoo o Facebook, perché questi URL sono predeterminati e non dovrebbero essere modificati dal visitatore. Ci sono momenti in cui puoi volere un'etichetta nascosta o div per contenere i dati, ma non penso che questo sia uno di questi. – TARKUS
IE non consente di modificare il tipo di un elemento del modulo per motivi di sicurezza, quindi andrei con il suggerimento nascosto di Aram div.
Mentre questo è per lo più vero, Ian Mackinnon ha pubblicato una soluzione sotto quella che ha funzionato per me. A partire da jQuery 1.4, è possibile modificare il tipo di input _if_ è staccato. – kingjeffrey
Ecco come farei questo:
$("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
});
Se si desidera filtrare alcuni degli elementi chiamano filtro() prima di ogni(), in questo modo:
$("input[type='hidden']").filter("[name='whatever']").each(function...
facile l'uomo .. .
$('input[type="hidden"]').each (function() { this.type = 'text'; });
trigger su un evento
Hai provato questo? –
Sì, questo funziona come un fascino :) – 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();
};
Quando c è un oggetto jQuery; la funzione sopra cambia l'attributo type. Uso:
var inputElemt = jQuery("#input");
Overlay.toAnyType(inputElemt, "text");
thread vecchio, ma di recente ho bisogno di fare qualcosa di simile, ma con campi di file e la loro liquidazione ... Penso che la stessa soluzione potrebbe essere applicata, ma almeno si può afferrare il contenuto, in questo caso.
var temp = $('#hidden-field').val();
$("#container-for-field").html("<input id='not-hidden' type='text' value='"+temp+"'/>");
Questo dovrebbe anche risolvere il problema :).
- 1. Cambia tipo di elemento Input utilizzando jquery
- 2. Jquery ottenendo l'altezza di un elemento nascosto
- 3. evento jQuery sul cambiamento del valore di input nascosto
- 4. angularjs: messa a fuoco su un elemento di input precedentemente nascosto all'interno di una direttiva
- 5. rendendo un tipo di input "file" nascosto con il pulsante
- 6. yii2 valore di input nascosto
- 7. Perché fluttuare un elemento di input cambia la sua altezza?
- 8. ReactJS: onClick cambia elemento
- 9. Intervallo di tipo di input HTML5 da positivo a negativo
- 10. Cambia il tipo di colonna da ntext a varbinary (max)
- 11. JS/jQuery - ottenere il tipo di elemento
- 12. jqueryui datepicker con input nascosto
- 13. Cambia la scroll di un div nascosto
- 14. Trovare il 'tipo' di un elemento di input
- 15. jQuery Cambia evento su un elemento <input> - un modo per conservare il valore precedente?
- 16. jQuery Mobile visualizza l'elemento di selezione nascosto
- 17. jquery, mostra un elemento nascosto con una dissolvenzaIn
- 18. In jQuery, come posso selezionare un elemento nascosto?
- 19. JQuery: controllare se un elemento è nascosto dall'utente
- 20. Un campo di input nascosto deve essere in una forma?
- 21. Perché l'eval di Python (input ("Immetti input:")) cambia il tipo di dati dell'input?
- 22. Impossibile impostare il valore del campo di input nascosto utilizzando jQuery
- 23. jQuery cambia testo figlio
- 24. cambia stile dinamicamente di nessun elemento html
- 25. Ottieni il tipo di elemento del modulo con jQuery
- 26. Passa un valore di variabile javascript nel tipo di input valore nascosto
- 27. Cambia il testo da "Invia" sul tag di input
- 28. jQuery Overflow di contenimento trascinabile Nascosto
- 29. jQuery rende variabile da elemento prima di accodare a DOM
- 30. Set necessaria attributo per un elemento di input, se non è nascosto
Duplicato di http://stackoverflow.com/questions/1544317/jquery-change-type-of-input-field – thisgeek