Остановить <enter>отправку формы при вводе файла в IE8 - PullRequest
0 голосов
/ 23 января 2012

IE8 отображает текстовое поле рядом с кнопкой обзора для ввода файла:

<input type="file" />

Я понимаю, что существует ряд ограничений безопасности в отношении того, что вы можете делать с вводом файлов с помощью JavaScript, но есть ли хороший способ остановить отправку родительской формы, когда пользователь фокусируется на этом текстовом поле и нажимает клавишу ввода?

Ответы [ 2 ]

1 голос
/ 23 января 2012

Самый простой способ - просто вернуть false в обработчик событий onSubmit в элементе формы.Предположительно, в другом месте формы у вас есть кнопка, которую вы хотите активировать при отправке формы.На этой кнопке вы можете добавить обработчик onclick, который вызывает form.submit ().Когда вы отправляете форму программным способом, обработчик onSubmit не запускается.

Может выглядеть примерно так:

<form id="myform" method="post" action="http://yourserver/page" onSubmit="return false;">
    <input id="myfile" type="file" name="file"/>
    <input type="button" value="upload" onClick="submitForm();" />
</form>

<script type="text/javascript">

function submitForm()
{
    // if no file, don't submit
    var file = document.getElementById("myfile");
    if (file.value.length == 0) return;

    var form = document.getElementById("myform");
    form.submit();
}
1 голос
/ 23 января 2012

Я бы посмотрел на использование нажатия клавиши jQuery и его перехват. Я не сделал это сам, чтобы проверить, но посмотрите здесь:

http://forum.jquery.com/topic/how-to-catch-keypress-on-body

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...