2012-01-13 33 views
7

Dường như có một số cách để nộp (POST) trường mẫu khuyết tật trong jQuery:Phương pháp tốt nhất để gửi các trường biểu mẫu bị vô hiệu hóa trong jQuery?

  • Có một lĩnh vực ẩn mà thay đổi khi những thay đổi đầu vào, và nộp
  • thủ gắn cặp khóa/giá trị khi nộp
  • giá trị Hoàn nguyên trên server-side (chỉ khi giá trị không dự kiến ​​sẽ thay đổi)

tôi đã tự hỏi đó (nếu có) được coi là tốt nhất cho trình trường mẫu khuyết tật. Rõ ràng readOnly là tùy chọn tốt nhất khi có sẵn, nhưng tôi có các hộp kiểm mà tôi cần gửi ngay cả khi chúng bị vô hiệu hóa (do logic nghiệp vụ). Tôi nhận ra đây không phải là một tình huống lý tưởng, nhưng hiếm khi là trường hợp phát triển web.

Có phương pháp hay nhất để gửi các yếu tố biểu mẫu bị vô hiệu hóa không?

+2

Các yếu tố biểu mẫu bị vô hiệu không được gửi. Cách chính xác để làm điều đó, là tạo đầu vào ẩn khi gửi. Đây là tài liệu HTML: http://www.w3.org/TR/html4/interact/forms.html#successful-controls – Dave

+0

@Dave Vì vậy, bạn đang nói tùy chọn 1 là lựa chọn tốt nhất? Đó cũng là điều tôi đang hướng tới. Ngoài ra, cảm ơn cho tài liệu. – Igor

+0

@GrailsGuy Liên quan đến lựa chọn đầu tiên của bạn, nếu bạn có trường biểu mẫu bị vô hiệu hóa, tại sao đầu vào lại thay đổi? –

Trả lời

7

Tùy chọn tốt nhất là làm cho đầu vào chỉ đọc - tạo sự kiện nhấp cho các hộp kiểm chỉ trả về sai và thay đổi màu nền của chúng.

Không có cách thực hành tốt nhất, nhưng điều đó đòi hỏi ít gian lận nhất.

5

Một giải pháp thứ tư sẽ là để cho phép các hộp kiểm trước khi trình các hình thức:

$("form").submit(function() { 
    $("input:checkbox", this).prop("disabled", false); 
}); 

Bạn có thể sử dụng một bộ chọn phức tạp hơn nếu bạn không muốn kích hoạt lại tất cả các hộp kiểm.

0

Có một cách khác nếu yêu cầu để gửi tất cả hoặc một số nguyên liệu đầu vào disbaled:

  1. Bước 1: đặt tên tên lớp (ví dụ mod.).
  2. Bước 2: onSubmit, kích hoạt tất cả các các lĩnh vực sau đây ví dụ dưới đây:.

    $ ("đầu vào [class = mod]") removeAttr ('khuyết tật');

  3. Bước 3: Đăng dữ liệu

  4. Step4: Vô hiệu hoá các lĩnh vực này một lần nữa (nếu có yêu cầu) sau ví dụ dưới đây:. Attr

    $ ("đầu vào [class = mod]") ('disabled = "tàn tật"');

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