2013-05-22 36 views
5

Tôi đã sử dụng thuộc tính biểu mẫu nút của HTML5 để nút gửi của tôi hiển thị bên ngoài biểu mẫu và vẫn kích hoạt gửi của tôi.Bất kỳ cách nào để hỗ trợ/shim nút biểu mẫu thuộc tính trong IE10?

dạng của tôi trông giống như sau:

<article> 
    <header>This is my form</header> 
    <section> 
    <p>Something explaining what is happening on this form.</p> 
    <form id="myform" action="/submit" name="myform"> 
     <input type="text" name="thing"> 
    </form> 
    </section> 
    <footer> 
    <button type="submit" form="myform">Submit</button> 
    </footer> 
</article> 

Tôi có điều này làm việc tốt trong Chrome/Firefox/Safari, nhưng tôi đã đi kiểm tra nó trong IE10 hôm nay và hình thức không nộp!

Bên cạnh việc thiết kế lại tất cả các trang của tôi để không sử dụng biểu mẫu = thuộc tính, có ai biết cách giải quyết vấn đề này không? Tôi muốn nó hoạt động giống như một nút gửi thông thường bên trong một biểu mẫu, trong đó nhấn enter trong trường văn bản sẽ gửi biểu mẫu cũng như nhấp vào nút.

Tôi muốn tránh thêm sự kiện nhấp chuột và lắng nghe nhập vào trường văn bản để kích hoạt gửi trong JavaScript nếu có thể.

+0

http://jsfiddle.net/mf63k/ - Như là, Có vẻ như để làm việc trong tất cả các trình duyệt ?, có lẽ bạn có HTML hoặc Javascript không hợp lệ ở đâu đó gây ra vấn đề này? – Anil

+1

@JustAnil Fiddle của bạn không hoạt động trong IE10 cho tôi. Nút không làm gì cả. – Paul

+0

Vẫn không được hỗ trợ trong IE11 –

Trả lời

8

Dường như thuộc tính form="myForm" không được hỗ trợ trên IE.

Xem bảng tại đây để biết thêm: http://caniuse.com/#search=Form%20features

Các chỉ cách để tái tạo này sẽ được sử dụng/tạo ra một polyfill javascript để nhân rộng các hành vi mong muốn.

Bạn có thể tìm thấy một danh sách các qua trình duyệt polyfills đây:
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

tôi không thể tìm thấy một để điền vào các hành vi form (nhưng chỉ nhìn cho một phút, vì vậy kiểm tra chính mình).

Tôi nghĩ rằng bạn sẽ phải viết tùy chỉnh chèn lấp của riêng bạn cho việc này.

Một inline đơn giản onclick sẽ trông như thế này:

<button 
    type="submit" 
    form="myform" 
    onclick="javascript:getElementById(this.getAttribute('form')).submit();" 
>Submit</button> 

JSFiddle: http://jsfiddle.net/mf63k/4/

+1

bạn có thể muốn sử dụng canisue.com như là nguồn hỗ trợ được liệt kê, nó là nhiều hơn uptodate. http://caniuse.com/#search=Form%20features. – jmoreno

+0

@jmoreno ý tưởng hay, phải trả lời câu hỏi này trước khi tôi gặp rắc rối, tôi đã cập nhật câu hỏi bằng liên kết. cảm ơn! – Anil

+0

Tôi tìm thấy câu trả lời của bạn trên tab có liên quan, từ một câu hỏi của câu hỏi - câu trả lời được chấp nhận có một cách giải quyết/polyfill – jmoreno

Các vấn đề liên quan