2010-08-23 23 views
7

Tôi có biểu mẫu có hai nút. Đầu tiên được ẩn bằng cách sử dụng Javascript.Nhập không gửi biểu mẫu trong IE vì nút ẩn

Khi tôi nhấn enter trong một trường văn bản trong IE, biểu mẫu không gửi. Tôi cho rằng đó là vì nó đã chọn nút đầu tiên làm nút gửi mặc định, nhưng vì nút đó bị ẩn, nó không hoạt động.

Tôi đã giải quyết vấn đề này bằng cách gửi biểu mẫu trên sự kiện nhập keydown Javascript. Tuy nhiên, điều này cũng gửi biểu mẫu nếu người dùng nhấn enter để chọn một mục từ trình đơn thả xuống tự động hoàn thành của trình duyệt.

example autocomplete dropdown

Làm thế nào để gửi biểu mẫu trên nhập trong IE, mà không làm phiền các chức năng autocomplete?

+0

tại sao bạn lại có nút ẩn? –

+0

Khi bật Javascript, biểu mẫu sẽ tự động gửi khi người dùng chọn giá trị từ hộp danh sách và nút bị ẩn. Khi Javascript tắt, người dùng có thể sử dụng nút để gửi biểu mẫu sau khi chọn giá trị. – Sjoerd

+0

Tôi tìm câu trả lời cho câu hỏi này một cái nhìn tuyệt vời về phát triển web thực tế ... – Sebastian

Trả lời

5

Chúng tôi đã gặp sự cố tương tự cách đây vài năm và AFAIR, chúng tôi đã thêm một nút bổ sung vào đầu biểu mẫu, luôn thực hiện tác vụ gửi mặc định khi nhập được nhấn trong IE. Nút đó có thể được "gần như ẩn" bằng cách cho nó một hình ảnh trong suốt 1x1.

0

Bạn có thể thêm nút thêm để giữ lại nộp chức năng của nút ở sau cách:

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

Hãy thử nút với lớp sau đây để ẩn:

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

Hơi muộn để thêm câu trả lời cho bài đăng cũ hơn 1 năm, trong khi đã có câu trả lời được chấp nhận .. – Charlie

+4

@Charlie Tôi sẽ không đồng ý . Những người khác có thể thấy nhận xét cụ thể này hữu ích. – Vic

+0

Giải pháp làm việc đầu tiên cho IE6 ... –

5

tôi cố định nó bằng cách opacity 0 như:

<input type="submit" style="width: 0px; height: 0px; opacity: 0;" id="submitBtn" name="submitBtn"> 
Các vấn đề liên quan