triggers la finestra di caricamento del file utilizzando javascript / jquery

invece di usare , è ansible usare e poi copiarlo usando javascript o jquery in modo tale che quando si fa clic sulla casella di testo, il dialogo di caricamento del file compaia .. … (e averlo effettivamente caricato quando viene inviato in un modulo)

Intendi qualcosa di simile?

http://jsfiddle.net/CSvjw/

 $('input[type=text]').click(function() { $('input[type=file]').trigger('click'); }); $('input[type=file]').change(function() { $('input[type=text]').val($(this).val()); }); 

Si noti, tuttavia, che il valore fornito dall’input del file è falso per motivi di sicurezza. Se vuoi solo mostrare il nome del file, puoi tagliare le barre.

Ecco un esempio di come farlo usando una divisione di stringhe e una schiera di schiere:

http://jsfiddle.net/CSvjw/1/

 $('input[type=text]').click(function() { $('input[type=file]').trigger('click'); }); $('input[type=file]').change(function() { var vals = $(this).val(), val = vals.length ? vals.split('\\').pop() : ''; $('input[type=text]').val(val); }); 

È ansible regolare ulteriormente per tenere conto dei sistemi che utilizzano una barra diretta come separatore di directory. È anche importante notare che, se lo fai, perderai la funzionalità di molti browser moderni in cui gli utenti possono trascinare i file dal loro computer direttamente su un input di file. Se fossi in te, abbraccerei quel paradigma disegnando l’input del file piuttosto che provare a trasformare un input di testo in qualcosa che non è.

E se il codice HTML ha identici ingressi multipli come questo qui sotto: –

 
​​​​​​​​​​​​​​​​​​​​​

Espandendo la risposta di @ treeface, il codice Jquery (versione corrente 1.8.0) sarebbe:

 $('input[type=text]').click(function() { $(this).parent(".item") .find('input[type=file]') .trigger('click'); }); $('input[type=file]').change(function() { $(this).parent(".item") .find('input[type=text]') .val($(this).val()); });​ 

Prendi nota tra $ parents () e $ parent () in jQuery. Provalo @ http://jsfiddle.net/afxDC/

Non usare display:none o visibility:hidden inizialmente nel css

In Jquery :

 $(document).ready(function() { $('#file').hide(); $("#elementToBeClicked").click(function(){ $('#file').click(); }); }); 

Ho il sospetto che per motivi di sicurezza non sarai in grado di farlo. Mi sembra di ricordare un po ‘di tempo cercando di impostare l’attributo value di un elemento di upload del file che non si può fare in quanto è ansible estrarre file specifici da un computer degli utenti senza il loro consenso. Immagino che questo si estenderebbe a una modifica a livello di codice di una casella di testo in un elemento di caricamento file, in quanto si potrebbe impostare il valore del campo di testo sul file che si desidera aggiungere, quindi cambiare il suo tipo in un elemento di upload e inviare il modulo.

Dovrebbe essere una cosa abbastanza semplice da provare anche se penserei che tu stia lavorando entro i limiti di Javascript e quindi se non puoi farlo in JS nativo è improbabile che tu possa usare JQuery.

Spero che abbia senso,

JLove

Penso che si possa associare il testo di input a una funzione jquery / javascript che creerà un input di file con codice e l’utente può ora caricare un file

  jquery function upload(){ $('[input type='text']').append('')