Je veux créer le html comme ceci:
<label class="radio-inline">
<input type="radio" name="hidden" checked="" value="Visible"> Visible
</label>
Carlin/Jade:
label.radio-inline
input(type="radio", name="hidden", value="0", checked="") Visible
Mais je reçois une erreur:
input est un élément à fermeture automatique: mais contient un contenu imbriqué.
Qu'est-ce que ça veut dire? Comment puis-je résoudre ce problème?
Il existe plusieurs façons de le faire en utilisant Jade/Pug. La première façon consiste à utiliser un caractère de pipe (qui nécessite une nouvelle ligne):
input
| text
La deuxième façon consiste à utiliser l'interpolation de balises (et vous pouvez rester sur la même ligne):
#[input] text
Une réponse alternative de Jethro serait donc:
label.radio-inline
#[input(type='radio', name='hidden', value=0, checked='')] Visible
Notez que vous pouvez même faire:
label #[input] text
Ce qui va générer:
<label>
<input/> text
</label>
Vous en aurez besoin comme ceci:
label.radio-inline
input(type='radio', name='hidden', value=0, checked='')
| Visible
Mettre Visible
sur la même ligne que input
, oblige pug à l'interpréter comme le HTML interne de l'élément input
.
Je pense qu'il est absurde de mettre la input
à l'intérieur de la balise label
, ou non? Tu pourrais juste faire
label(for="ya") Visible
input(id="ya", type="radio", name="hidden", value=0, checked="")
Cela vous donne un bouton radio parfaitement étiqueté conformément aux modernes normes Web .