Не перехватывайте нажатия клавиш, если вы действительно это не имеете в виду. Конечно, не эмулируйте кнопки с пролетами! HTML имеет теги помимо span
и div
по какой-либо причине.
Ваша проблема, возможно, является ошибкой IE, но это то, что вы получаете за то, что у вас есть встроенное поведение, которое отлично работает. Вам нужен только обработчик событий one , который запускается при отправке формы .
$(document).ready(function(){
function sendcode(b){
console.log('function sendcode used');
$('#Result').load('scan.php?code=' + b);
$('#code').val('');
$('#code').focus();
};
$('#form').submit(function(e) {
e.preventDefault();
sendcode($('#code').val());
});
});
И, честно говоря, вы можете иметь более доступную форму, которая не полагается на JavaScript, а также код, который намного более многоразовый:
$(document).ready(function(){
$('#form').submit(function(e) {
e.preventDefault();
var $form = $(this);
var data = $form.serialize();
var action = $form.attr('action');
$('#result').load(action + '?' + data);
$('#code').val('').focus();
});
});
Теперь URL-адрес живет в атрибуте action
формы (где находится целевой URL формы), а JS связывает значения формы, такие как браузер, и ajax-отправьте форму для вас. Если пользователь отключен JS, форма будет отправлять обычно , и они все равно получат полезный результат, хотя и на новой странице. Код короче, проблемы с экранированием URL-адресов позаботятся о вас, и количество жестко закодированных значений меньше.