В клавише Enter IE8 в форме не работает

Лучший заголовок был бы, "Почему не там никакой RAII в C#/VB". C++ / CLI (Эволюция прерывания, которое было Управляемым С++) имеет RAII в том же самом смысле как C++. Это - все просто сахар синтаксиса для того же шаблона завершения, что остальная часть использования языков CLI (Деструкторы в управляемых объектах для C++ / CLI являются эффективно финализаторами), но это там.

Вам могло бы понравиться http://blogs.msdn.com/hsutter/archive/2004/07/31/203137.aspx

23
задан H. Pauwelyn 30 August 2015 в 16:48
поделиться

6 ответов

Я нашел подходящее решение и хотел бы поделиться им с u, ребята.

Вместо использования ] . Это будет делать то же самое в других браузерах (IE6-7, FF3) И работает в IE8. :)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<style type="text/css">
#test {
    display: none;
} 
</style> 
<script type="text/javascript"> 
onload = function() { 
    document.getElementById('test').style.display = 'block'; 
};
</script> 
</head> 
<body> 
<form id="test" method="get" action="javascript:alert('woei!')"> 
    <input type="text" name="user" value="" /> 
    <input type="password" name="pw" value="" />
    <button type="submit" value="submit" id="submit"></button>
</form> 
</body> 
</html>
13
ответ дан 29 November 2019 в 02:22
поделиться

Я пробовал это в IE8, и у меня это работает. Вы должны убедиться, что часть формы имеет фокус.

Javascript имеет функцию фокусировки, которую вы можете использовать для установки фокуса, если вам это нужно.

var textbox = document.getElementById("whatever name input box's id will be");
if(textbox) textbox.focus();
0
ответ дан 29 November 2019 в 02:22
поделиться

Я не могу сказать, действительно ли это ошибка, но я могу подтвердить, что поведение, о котором вы сообщаете, изменилось в IE 8 ... и Я полагаю, что это, вероятно, ошибка, а не преднамеренное изменение.

Если форма настроена с использованием CSS display: none, поведение кнопки отправки по умолчанию не работает.

Другие браузеры, включая IE 7 (или даже IE 8, использующие стандартный режим совместимости IE 7), не имеют проблем.

I ' Я сам решил проблему, просто используя height: 0px; в CSS, а затем с помощью javascript установить соответствующую высоту, когда я хочу показать форму. Вместо этого при использовании высоты стандартное поведение клавиши ввода по умолчанию работает нормально.

4
ответ дан 29 November 2019 в 02:22
поделиться

Вы можете добавить событие onkeyup в свои поля ввода, чтобы, если вы нажмете клавишу ввода в поле ввода, оно также отправилось.

Как упоминалось в CodePartizan, вам нужен фокус в противном случае на кнопке, поэтому, если вы перейдете к кнопке или нажмете на нее, мне кажется, что это тоже сработает.

0
ответ дан 29 November 2019 в 02:22
поделиться

Я думаю, что все намного сложнее, чем вы думаете ...

когда значение отображения формы не установлено с помощью css class или просто с атрибутом стиля на начальной странице, нажатие клавиши ввода в текстовом поле не работает, только если у вас более одного поля ввода с текстовым типом ... если у вас есть одно текстовое поле, оно работает нормально ... если вы есть более одного, это не вызывает отправку формы ...

Здесь я сделал демонстрацию ...

Работает нормально (нормальная форма) http://yasinergul.com/stackoverflow/ie8-enter-key-bug/one.html

Работает нормально (форма скрыта и снова видна, но с одним вводом текста) http://yasinergul.com/stackoverflow/ie8-enter-key-bug/two.html

Не работает (форма скрыта и снова видна, но с двумя вводом текста) http://yasinergul.com/stackoverflow/ie8-enter-key-bug/three.html

i думаю, что лучший подход - предоставить объекту класс .hidden, но не устанавливать display: none для этого селектора css. вы можете сделать его скрытым с помощью jquery, например

$(".hidden").hide();

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

6
ответ дан 29 November 2019 в 02:22
поделиться

Я думаю, Ясин понял суть дела. У меня была та же проблема: несколько текстов поля внутри формы, видимость которых "скрыта". Мой обходной путь (чтобы форма не мигал) - установить непрозрачность формы на 0 в CSS, а затем настроить параметры ее стиля с помощью jQuery в готовом документе.

Я считаю, что это не то, что можно исправить с помощью JS.

0
ответ дан 29 November 2019 в 02:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: