2012-03-05 5 views
0

У меня есть форма на моей странице, с одним текстовым вводом и одним вводом ввода, который отправляет информацию в скрипт php. Пользователи могут отправить форму, нажав «enter» на своей клавиатуре или нажав кнопку «Отправить».форма не будет отправлять данные в ie8

В IE9 и в любом другом браузере пользователь может нажать «ввести» или нажать кнопку «Отправить», и все будет хорошо, но в IE 8, если пользователь нажимает кнопку «Отправить», он работает нормально, но если они нажимают «enter» 'форма не отправляет информацию.

Форма открывает новую вкладку, поэтому я знаю, что форма отправляется, когда пользователь нажимает «ввести», а именно, что информация не отправляется на новую страницу в IE8.

У кого-нибудь есть предложения?

Спасибо!

Код:

<form action="/search.php" method="post" onsubmit="location.reload(true)" target="_blank" name="myform"> 
    <table style="width: 100%; min-width: 728px; margin: 150px 0px 170px 0px; text-align: center;"> 
     <tr> 
      <td valign="middle"><img alt="Logo" src="vivvulogo.png" /><br /> 
      <input maxlength="256" name="query" id="query" style="width: 400px; height: 25px; font-size: medium;" type="text" /> 
      <input name="submit" style="height: 30px; width: 120px; height: 30px; font-size: medium; background-color: #CCCCCC; border-style: solid; border-color: #999999; border-width: 1px; vertical-align: top;" type="submit" value="Search" /><br /> 
      </td> 
     </tr> 
    </table> 
</form> 
+0

Можете ли вы опубликовать форму? Я видел подобные проблемы в прошлом, но мне нужен какой-то код, чтобы пробежать мою память. – Anthony

+0

где код ур? –

+0

Звучит как ошибка javascript ... но трудно сказать без кода, который вы используете для отправки формы и/или самой формы! – rjz

ответ

0

Если вы используете кнопку тег, ударяя ввести не отправить форму ...

Скрытие кнопки отправки на нет с помощью дисплея: ни один, позиционируя их страницу , скрывая их внутри переполнения: скрытый или любой другой метод также нарушит функцию ввода-отправки.

Если форма скрыта, когда страница загружается и отображается с использованием JavaScript, вход в submit также будет нарушен.

Похоже, что Internet Explorer просматривает страницу во время загрузки и показывает, какие кнопки отправки видны, а затем добавляет функциональность ввода-отправки для этих форм.

не видя ваш код, трудно сказать, что именно является лучшим решением для вас, но исправить эти сценарии, как правило, можно использовать следующий JavaScript:

function addInputSubmitEvent(form, input) { 
    input.onkeydown = function(e) { 
     e = e || window.event; 
     if (e.keyCode == 13) { 
      form.submit(); 
      return false; 
     } 
    }; 
} 

window.onload = function() { 
    var forms = document.getElementsByTagName('form'); 

    for (var i=0;i < forms.length;i++) { 
     var inputs = forms[i].getElementsByTagName('input'); 

     for (var j=0;j < inputs.length;j++) 
      addInputSubmitEvent(forms[i], inputs[j]); 
    } 
}; 

Если вы ищете для решения JQuery ...

$(function(){ 
    $('input').keydown(function(e){ 
     if (e.keyCode == 13) { 
      $(this).parents('form').submit(); 
      return false; 
     } 
    }); 
}); 
0

Попробуйте использовать

target="_self" 

вместо

target="_blank" 

Надеюсь, что это должно сработать.

Смежные вопросы