У меня есть html-форма с настраиваемым полем для загрузки файла .Под этим я подразумеваю, что я переместил фактическое поле файла за границы страницы с помощью css, что у меня есть настраиваемое поле ввода и кнопка, и что у меня есть событие щелчка jquery, прикрепленное к этой настраиваемой кнопке для запуска диалог ввода файла. Все отлично работает в любом браузере.
Но мне нужно отправить форму через javascript. И я где-то понял, что IE запоминает мои действия с javascript как злонамеренные манипуляции с полем ввода файла и блокирует мой доступ с ошибкой «доступ запрещен»
, когда я вызываю document.formName.submit ()
.
Есть ли способ обойти это, потому что я полностью сошел с ума, пытаясь найти решение. Я серьезно не хочу использовать поле ввода файла по умолчанию, поскольку все браузеры отображают его по-разному и портят мой дизайн.
код:
<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>
ОБНОВЛЕНИЕ: Я просто попытался сначала загрузить файл перед отправкой формы через ajax, но это также дало мне ошибку отказа в доступе ..> _>