Điểm:0

How to add a boolen attribute to a form?

lá cờ us

I am trying to add the boolean attribute "novalidate" to all my forms.

I have tried numerous approaches in my theme_preprocess_form function but no luck. I see in some preprocess functions, $variables['attribute'] is an object and has methods like addClass() and setAttribute(). But in _preprocess_form it is an array. Plus setAttribute doesnt sound like it will do boolean attributes anyway.

I tried to simply override the twig template for a form and do this:

<form{{ attributes }} novalidate>
  {{ children }}
</form>

but even that outputs:

<form novalidate="">
lá cờ cn
`novalidate=""` phù hợp với đặc tả HTML - thuộc tính boolean có thể có giá trị miễn là đó là một chuỗi trống hoặc cùng một chuỗi (không phân biệt chữ hoa chữ thường) như tên thuộc tính. Vì vậy, `novalidate="novalidate"` cũng sẽ ổn. Nếu bạn tuân theo các quy tắc đó, sự tồn tại của thuộc tính được coi là `true` bất kể giá trị là gì. Xem https://developer.mozilla.org/en-US/docs/Web/HTML/Attribut#boolean_attribut
Jaypan avatar
lá cờ de
Bạn nên đặt câu trả lời đó làm câu trả lời Clive - đó là câu trả lời đúng cho câu hỏi.
lá cờ cn
Tôi đã có hai suy nghĩ @Jaypan, có lẽ câu trả lời "thích hợp" cho điều này là câu trả lời cho phép Twig/Drupal xuất ra `novalidate` trần, mặc dù nó không quan trọng về mặt kỹ thuật? Có lẽ suy nghĩ quá nhiều, tôi sẽ thêm một câu trả lời
Jaypan avatar
lá cờ de
Chà, nếu ai đó đưa ra câu trả lời khác, thì đó cũng có thể là câu trả lời cho câu hỏi. Cả hai sẽ là câu trả lời hợp lệ.
Điểm:3
lá cờ cn

Bạn có thể đang cố gắng giải quyết một vấn đề không ở đây. novalidate="" phù hợp với đặc tả HTML - các thuộc tính boolean có thể có một giá trị miễn là đó là một chuỗi rỗng hoặc cùng một chuỗi (không phân biệt chữ hoa chữ thường) như tên thuộc tính. Cho nên novalidate="novalidate" cũng sẽ ổn thôi.

Nếu bạn tuân theo các quy tắc đó, thì sự tồn tại của thuộc tính có nghĩa là thật, bất kể giá trị.

Nhìn thấy https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes#boolean_attribut để biết thêm thông tin.

liquidcms avatar
lá cờ us
Vâng, tôi cho rằng điều này sẽ hoạt động đúng chức năng mặc dù tôi thấy có một số vấn đề trên D.org khi mọi người hỏi cách thêm "thuộc tính boolean" vì nó được hỗ trợ trong HTML5 và tự hỏi liệu có cách nào để thực hiện việc này "đúng không " đường.
lá cờ cn
Vâng, đó là thứ mà tôi cũng muốn - đó là HTML của tôi, hãy cho tôi thứ tôi muốn! Nhưng có quá nhiều cách có thể thao túng HTML để lo lắng về nó IMHO. Ví dụ: khi bạn phân tích cú pháp HTML thành `DOMDocument`, nó được giữ trong cấu trúc XML. Các thuộc tính không thể có giá trị trống trong XML, do đó, các thuộc tính HTML boolean được cung cấp một giá trị trống theo mặc định và khi tài liệu được lưu dưới dạng HTML, bạn sẽ nhận được những gì bạn đã thấy trong câu hỏi của mình. Drupal sử dụng `DOMDocument` trong các phần khác nhau của quy trình, vì vậy đó thậm chí có thể là những gì đang xảy ra ở đây theo đúng nghĩa đen. Quá nhiều nỗ lực để thay đổi tôi muốn nói

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.