2010-08-23 15 views
7

Mam formularz z dwoma przyciskami. Pierwsza jest ukryta przy użyciu Javascript.Enter nie przesyła formularza w IE z powodu ukrytego przycisku

Po naciśnięciu enter w polu tekstowym w IE, formularz nie przesyła. Zakładam, że dzieje się tak, ponieważ wybrał pierwszy przycisk jako domyślny przycisk przesyłania, ale ponieważ ten przycisk jest ukryty, nie działa.

Rozwiązałem ten problem, przesyłając formularz na wydarzenie związane ze skryptem klawiszowym Enter. Przesyła również formularz, jeśli użytkownik naciśnie klawisz Enter, aby wybrać element z menu rozwijanego autouzupełniania przeglądarki.

example autocomplete dropdown

Jak mogę przesłać formularz on wejść w IE, bez zakłócania funkcji autouzupełniania?

+0

dlaczego masz ukryty przycisk? –

+0

Gdy Javascript jest włączony, formularz automatycznie przesyła się, gdy użytkownik wybierze wartość z pola listy, a przycisk jest ukryty. Gdy Javascript jest wyłączony, użytkownik może użyć przycisku, aby przesłać formularz po wybraniu wartości. – Sjoerd

+0

Znajduję odpowiedzi na te pytania wspaniały wgląd w praktyczne tworzenie stron internetowych ... – Sebastian

Odpowiedz

5

Mieliśmy podobny problem kilka lat temu, a AFAIR, dodaliśmy na początku formularza dodatkowy przycisk, który zawsze wykonuje domyślną akcję przesyłania po naciśnięciu klawisza Enter w IE. Ten przycisk można "prawie ukryć", nadając mu przezroczysty obraz 1x1.

0

Możesz dodać dodatkowy przycisk, aby zachować przedstawić funkcjonalność przycisku w następujący sposób:

<![CDATA[<!--[if IE]>]]> 
       <input type="text" style="display: none;" disabled="disabled" size="1" /> 
      <![CDATA[<![endif]-->]]> 
10

Spróbuj przycisk z następujących klas ukryć:

.hidden-element { 
    width: 0px; 
    height: 0px; 
    position: absolute; 
    top: -99999px; 
    left: -99999px; 
} 
+0

Trochę za późno, aby dodać odpowiedź do ponad 1-letniego postu, podczas gdy istnieje już akceptowana odpowiedź .. – Charlie

+4

@Charlie Nie zgodziłbym się . Inne osoby mogą uznać ten komentarz za pomocny. – Vic

+0

Pierwsze działające rozwiązanie dla IE6 ... –

5

Naprawiłem go przez kryciem 0 jak:

<input type="submit" style="width: 0px; height: 0px; opacity: 0;" id="submitBtn" name="submitBtn"> 
Powiązane problemy