2009-08-01 17 views
20

Nếu tôi gửi trường văn bản bị vô hiệu hóa qua POST, giá trị kết quả sẽ là gì trên trang hành động?Trường văn bản bị tắt sẽ gửi khi biểu mẫu được đăng?

Ví dụ, tôi có:

<table border=0 cellpadding=4 cellspacing=0> 
<tr><td> 
    <input type="checkbox" id="chk_$item" 
    onClick="javascript:handleClick('$item')"> 
</td><td> 
    <input type="text" id="txt_$item" name="addresses[]" value="$item"> 
</td></tr> 
<tr><td> 
    ...etc... 
</td></tr> 
</table> 

các handleClick() kiểm tra chức năng javascript nếu chk_$item được kiểm tra, nếu không, nó sẽ vô hiệu hóa các lĩnh vực txt_$item văn bản.

Khi tôi gửi, tất cả các trường văn bản đi đến một mảng addresses[] trong tập lệnh PHP.

Nhưng, tôi có thể ngăn không cho trường gửi bất kỳ điều gì nếu nó bị vô hiệu hóa không? Nó sẽ làm điều này theo mặc định? Nếu không, tôi nên thay đổi hành vi như thế nào? (Tôi thực sự không muốn xóa các trường khi chúng bị vô hiệu hóa).

Trả lời

57

Đầu vào bị tắt sẽ không được gửi cùng với biểu mẫu; đó là một phần của hành vi được xác định là disabled, cf. W3C HTML 4.01 Form docs.

+1

cảm ơn, điều này đã giúp tôi tiết kiệm thời gian cho dự án của tôi –

+1

một liên kết đến thông số kỹ thuật sẽ giúp bạn nhận được nhiều ưu đãi từ tôi. –

+1

Có bạn đi. :) – chaos

21

Nếu bạn không muốn thay đổi, hãy đặt số readonly.

+0

Đơn giản chỉ cần đặt: chỉ đọc * không * đáp ứng nhu cầu của OP. Nếu tôi hiểu chính xác, OP rõ ràng muốn loại trừ các trường khỏi gửi. Nghe có vẻ tương tự, nhưng về cơ bản đây là một điều hoàn toàn khác. Nó không phải là về bảo vệ nội dung của trường ở phía khách hàng mà còn về việc giảm tập dữ liệu gửi nhận được ở phía máy chủ. các đầu vào hỗn độn * bị tắt *. Tôi biết từ các bài kiểm tra trước đó, rằng 'chỉ đọc' và 'bị vô hiệu hóa' thậm chí trông khác nhau trong các trình duyệt web khác nhau và thực tế là không giống nhau. – hasienda

+0

Điều này sẽ được viết tốt hơn như một bình luận và đọc "Hoặc, nếu bạn không muốn nó thay đổi ...". Nó không thỏa mãn câu hỏi của OP. Đó là giải pháp thay thế cho một vấn đề khác. – Citizen

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