2011-06-21 31 views
5

Tôi đã cố gắng tìm ra một thời gian những gì đang xảy ra với xác nhận của tôi về hình thức HTML5 và tôi nhận thấy rằng:HTML5 và xác nhận hình thức programatically nộp

  1. khi tôi gửi biểu mẫu sử dụng nút phần tuân xác nhận hoạt động OK
  2. khi cố gắng gửi biểu mẫu theo lập trình bằng cách sử dụng hàm jQuery submit() được gửi và xác thực có vẻ không hoạt động.
  3. khi tôi kích hoạt nút gửi của mẫu programatically, xác nhận việc

Nó phù hợp trong tất cả các trình duyệt OSX (FF5, O11, Chr13) nhưng Safari 5, mà thực sự không xác nhận trong không ai trong số các trường hợp .

Here is the jsFiddle to test.

Bất cứ ý tưởng tại sao tùy chọn thứ hai không hoạt động?

+1

của bạn '.submit() 'không thực sự không nộp trong fiddle của bạn, bởi vì bạn đã thiết lập ID của nút gửi cho' submit' . http://api.jquery.com/trigger/#comment-134514715 – pimvdb

+0

Ngoài ra, bạn có thể muốn thay đổi id của đầu vào gửi của mình thành id khác ngoài 'đầu vào'. – Perception

+0

OK Tôi đã thay đổi id của nút biểu mẫu và id của biểu mẫu - hành vi là giống nhau – kwicher

Trả lời

1

Có vẻ như nút gửi phải được kích hoạt bằng cách nào đó. Điều này sẽ không ngạc nhiên vì trình duyệt cũng không kích hoạt sự kiện thay đổi, khi một thay đổi giá trị của một đầu vào văn bản qua js.

+0

Điều đó tôi đã nhận thấy :) – kwicher

1

Tôi đã thực hiện một số thử nghiệm và dường như biểu mẫu đó được xác thực và được gửi bởi sự kiện click trên thành phần <input type="submit" /> đầu tiên dưới dạng.

Điều tương tự xảy ra khi tiêu điểm của bạn ở dạng (ví dụ: trong một số yếu tố đầu vào) và bạn nhấn enter. Đó là cách các trình duyệt xử lý biểu mẫu gửi và tôi đồng ý rằng có một chút kỳ quặc.

Dường như bạn có thể chạy chương trình xác thực html5 bằng cách sử dụng API hạn chế HTML5 nhưng phải nhận thức được hỗ trợ trình duyệt.

Do any browsers yet support HTML5's checkValidity() method?

Ngoài ra còn có một số thư viện JavaScript để trợ giúp bạn.

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