2014-02-13 4 views
0

Я хочу предотвратить отправку формы с помощью hittiing enter key на input type = file. Я выполнил поиск сценария jquery. Это нормально для типа ввода = текст, но, если он попадает в файл типа ввода, после выхода из системы отображается страница входа в систему. Я использую jsp и jquery. А также мой бровер IE9. Что-то не так в моем коде?Отключить отправку формы нажатием клавиши ввода по типу ввода - файл

JQuery:

$(function(){ 
    $(window).keydown(function(event){ 
     if(event.keyCode == 13) { 
      event.preventDefault(); 
      //$('#fil_CsvImp_refer').click(); 
      return false; 
     } 
    }); 
    $("input[type=text]").keypress(function(ev) { 
     if ((ev.which && ev.which === 13) || 
      (ev.keyCode && ev.keyCode === 13)) { 
      return false; 
     } else { 
      return true; 
     } 
    }); 
    $("input[type=file]").keypress(function(ev) { 
     if ((ev.which && ev.which === 13) || 
      (ev.keyCode && ev.keyCode === 13)) { 
      return false; 
     } else { 
      return true; 
     } 
    }); 
}); 

JSP:

<s:form action="" method="POST" name="frm_CsvImp_import" id="frm_CsvImp_import" 
enctype="multipart/form-data"> 
<s:file key="fil_CsvImp_refer" name="fil_CsvImp_refer" cssClass="mediuminput" accept=".csv" /> 
<input type="button" class="" value="submit"/> 
</s:form> 
+0

Совершает ли консоль js что-то? whad означает это: «он выходит из системы и отображает страницу входа в систему» ​​(укажите какой-то контекст)? – Allende

+0

Я имею в виду, что я ударил ключ ввода на тип ввода - файл, страница входа в систему JSP отображается после выхода из системы. –

ответ

0

Это работает для меня (во входном файле, простой HTML на Firefox, Chrome (оба UpToDate) и JQuery 1.11):

 $("input[type=file]").keypress(function(ev) { 
       return false; 
       //ev.preventDefault(); //works as well 

    }); 

Также обратите внимание, что, не просто «введите» клавишу запускает диалоговое окно браузера (это также делает barpace).

+1

После перезапуска затмения и очистки кеша на IE9, мой jquery работает правильно. btw, waht является barpace? PLS объясните мне, если это возможно. заранее спасибо. –

+0

Извините, опечатка хотела написать «пробел» (клавиша на клавиатуре). Если вы проверите только ключ keyCode, он будет работать, но клавиша пробела вызовет диалог поиска для файла так же, как и ключ ввода. – Allende

0

Я думаю, что я не понял ваш вопрос ясно

$(document).ready() { 
$('input:file').keypress(function() { 
    //your operations 
}); 
} 

(OR) один раз попробовать-е есть, надеюсь, это поможет вам

$(function(){ 

$("#frm_CsvImp_import").on("change", "#INPUTTYPEID(or.CLASSNAME)", function(){ 

//do your operations 
}); 

}); 
Смежные вопросы