Trong khi dòng mới (carriage return & Dòng Feed) được về mặt kỹ thuật cho phép trong < input> 's ẩn nhà nước , chúng phải được thoát để tương thích với các trình duyệt cũ hơn. Bạn có thể thực hiện việc này bằng cách thay thế tất cả các Chuyển hàng (\u000D
hoặc \r
) và tất cả Nguồn cấp dữ liệu (\u000A
hoặc \n
) bằng các chuỗi độc quyền được ứng dụng của bạn nhận dạng là Chuyển hàng hoặc Đường mới (và cũng thoát, nếu có trong bản gốc) chuỗi).
Đơn giản chỉ cần các tổ chức nhân vật không làm việc ở đây, do không phù hợp trình duyệt có thể biết
và
là dòng mới và tách chúng khỏi các giá trị.
Ví dụ
Ví dụ, trong PHP, nếu bạn đã echo
giá trị truyền cho một textarea, bạn sẽ bao gồm các dòng mới (và chuỗi không thoát).
< textarea> Một số văn bản với một \ bao gồm
và một dòng mới với \ r \ n là giá trị nộp </textarea>
Tuy nhiên, trong PHP, nếu bạn đã echo
sự giá trị cho thuộc tính giá trị của thẻ < đầu vào, bạn sẽ thoát khỏi các dòng mới bằng các chuỗi độc quyền của mình (ví dụ: \r
và \n
) và thoát khỏi bất kỳ trường hợp nào của chuỗi độc quyền của bạn trong giá trị đã gửi.
< input type = giá trị "ẩn" = "Một số văn bản với một \\ bao gồm \ r \ nand một dòng mới \\ r \\ n là giá trị nộp">
Sau đó, trước khi bằng cách sử dụng giá trị ở nơi khác (chèn vào cơ sở dữ liệu, gửi email, v.v.), hãy đảm bảo không xem trước giá trị đã gửi, nếu cần.
tái bảo đảm
Như yên tâm hơn nữa, tôi hỏi những WHATWG, và Ian Hickson, biên tập viên của hiện spec HTML, trả lời:
bfrohs Câu hỏi loại về < input = ẩn> - Nguồn cấp dữ liệu đường truyền và Trả về vận chuyển có được phép trong giá trị không? Chúng đặc biệt không được phép trong trạng thái Văn bản và trạng thái Tìm kiếm, nhưng không có đề cập nào được thực hiện cho trạng thái Ẩn. Và, nếu không, có một giải pháp HTML có thể chấp nhận được để lưu trữ dữ liệu biểu mẫu từ một vùng văn bản không?
Hixie vâng, họ được phép // iirc // vì lý do di sản bạn có thể muốn thoát khỏi chúng mặc dù như một số trình duyệt bình thường hóa chúng đi // i quên nếu chúng ta cố định đó hay không // trong spec
Source
Nếu một trình duyệt hỗ trợ trình hình thức, nó sẽ rất có thể cũng nhận ra rằng ' ' và ' 'là dòng mới, và nếu nó không đúng cách loại bỏ dòng mới, nó cũng sẽ loại bỏ tất cả các lần xuất hiện của' 'và' '. – 0b10011