Puncte:0

How to add a boolen attribute to a form?

drapel 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="">
drapel cn
`novalidate=""` este în regulă pentru specificația HTML - atributele booleene pot avea o valoare atâta timp cât este un șir gol sau același șir (insensibil la majuscule și minuscule) ca numele atributului. Deci `novalidate="novalidate"` ar fi, de asemenea, bine. Dacă urmați acele reguli, existența atributului este considerată drept „adevărat”, indiferent de valoare. Consultați https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes#boolean_attributes
Jaypan avatar
drapel de
Ar trebui să puneți asta ca răspuns Clive - este răspunsul corect la întrebare.
drapel cn
Eram în două minți @Jaypan, poate că răspunsul „corespunzător” la acesta este unul care permite Twig/Drupal să scoată „novalidate”, chiar dacă din punct de vedere tehnic nu contează? Probabil că mă gândesc prea mult la asta, voi adăuga un răspuns
Jaypan avatar
drapel de
Ei bine, dacă cineva vine cu acel alt răspuns, atunci și el poate fi un răspuns la întrebare. Ambele vor fi răspunsuri valide.
Puncte:3
drapel cn

Este posibil să încercați să rezolvați o problemă care nu este aici. nuvalidate="" este în regulă pentru specificația HTML - atributele booleene pot avea o valoare atâta timp cât este un șir gol sau același șir (insensibil la majuscule și minuscule) ca numele atributului. Asa de novalidate="novalidate" ar fi de asemenea bine.

Dacă urmați acele reguli, existența atributului este considerată ca însemnătate Adevărat, indiferent de valoare.

Vedea https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes#boolean_attributes pentru mai multe informatii.

liquidcms avatar
drapel us
Da, m-am gândit că acest lucru va funcționa funcțional, deși văd că există câteva probleme pe D.org cu oameni care întreabă cum să adauge „atribute booleene”, deoarece este acceptat în HTML5 și mă întrebam dacă există o modalitate de a face acest lucru „corect”. " cale.
drapel cn
Da, este genul de lucru pe care mi-aș dori și eu - este HTML-ul meu, dă-mi ceea ce vreau! Dar există prea multe în modul în care ar putea fi manipularea HTML pentru a vă face griji în privința asta, IMHO. De exemplu, când analizați HTML într-un „DOMDocument”, acesta este păstrat într-o structură XML. Atributele nu pot avea valori goale în XML, așa că atributele HTML boolean primesc o valoare goală în mod implicit, iar când documentul este salvat ca HTML, obțineți ceea ce ați văzut în întrebarea dvs. Drupal folosește „DOMDocument” în diferite părți ale conductei, astfel încât asta ar putea fi chiar ceea ce se întâmplă aici. Prea mult efort de schimbare aș spune

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.