Ho un modulo html, con un campo di caricamento file personalizzato. E con ciò intendo che ho spostato il campo file effettivo oltre i bordi della pagina con css, che ho un campo di input personalizzato e un pulsante in posizione, e che ho un evento click jquery collegato a quel pulsante personalizzato per attivare il finestra di immissione dei file. Funziona tutto bene, in ogni browser.ie javascript form invia con input file
Ma devo inviare il modulo tramite javascript. E ho ottenuto da qualche parte che IE ricorda le mie azioni con javascript come una manipolazione dannosa del campo di input del file e blocca il mio accesso con un errore "access denied"
quando invoco document.formName.submit()
.
C'è un modo per aggirare questo, perché sono diventato completamente arrabbiato cercando di cercare una soluzione. Ho seriamente non voglio usare il campo di input file di default, come ogni browser rende diverso e scombina il mio progetto ..
codice:
<form name="thisForm" onsubmit="return false;" enctype="multipart/form-data" method="post" action="index.cfm/somepage">
<input type="file" class="hidden" name="hidden" id="hidden" />
<input type="text" name="shown" id="shown" />
<button id="button">browse..</button>
<input type="submit" id="submitForm" />
</form>
<script>
$('button').click(function(){
$('#shown').val($('#hidden').val());
});
$('submitForm').click(function(){
validateForm();
});
function validateForm()
{
//regular expression validation against all other input fields in the form
//not the file input field
validateVAT();
}
function validateVAT()
{
//connect to external service to check VAT
submitForm();
}
function submitForm()
{
document.thisForm.submit();
}
</script>
UPDATE: Ho appena cercato di prima caricare il file, prima di inviare il modulo, tramite ajax, ma anche mi ha dato l'accesso negato errore ..> _>
Puoi pubblicare il tuo campo di file codice di manipolazione? Non ho mai visto prima quell'errore da IE! –
Questo articolo affronta le opzioni di stile per gli input di file e le soluzioni JS che possono aiutare: http://www.quirksmode.org/dom/inputfile.html –
adrianlynch: il codice (nella sua forma base) esiste già: il primo evento click . Trasmetto solo il valore del campo nascosto al campo di input visibile. diodeus: che non funziona, fondamentalmente fa quello che faccio, ottenendo il valore dal campo nascosto .. – dreagan