2010-11-07 21 views
5

Tôi muốn chỉ bao gồm các trường biểu mẫu nhất định khi gửi biểu mẫu bằng jQuery. Ví dụ: tôi muốn bỏ qua tất cả các trường có thuộc tính disabled ... có thể giống như sau:Bỏ qua các trường nhập khi gửi biểu mẫu với jQuery

$('#my_button').click(function() { 
    if($('input').hasAttr('disabled') { 
     //ignore this form field when submitting 
    } 
    $('form').submit(); 
}); 

Bất kỳ ý tưởng nào?

Trả lời

14

Điều đó là không cần thiết, disabled đầu vào bị loại trừ đã là. Các phương pháp jQuery khác nhau, bao gồm nộp()serialize() tôn vinh những đặc điểm kỹ thuật HTML 4 cho các điều khiển khuyết tật trong các hình thức web, mà đi như sau:

Một kiểm soát thành công là "hợp lệ" để trình. Mọi điều khiển thành công đều có tên điều khiển được ghép nối với giá trị hiện tại của nó như là một phần của tập dữ liệu biểu mẫu đã gửi. Điều khiển thành công phải được xác định trong phần tử FORM và phải có tên điều khiển.

Tuy nhiên:

  • Controls có disabled không thể thành công.

http://www.w3.org/TR/html401/interact/forms.html#successful-controls

+1

+1 - Đối với những người tò mò, jQuery [thực hiện các bộ lọc tương tự khi nó serializes] (https://github.com/jquery/jquery/blob/master/src/ajax. js # L97). –

+0

Tôi vừa mới đăng bài mà tôi nghĩ rằng nó sẽ bỏ qua nó theo mặc định anyway. – Matt

+0

Nhưng thuộc tính bị vô hiệu hóa có thể được đặt thành false bằng javascript. Trong trường hợp này, chúng cũng sẽ được đệ trình, có thể đó là hành vi mà ThePixelProdigy muốn thay đổi. –

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