#1 by PimPim
Dear all,
I want to make some words in my form fields choice label bold, but I could not find how to do that.
For example, I want
Which one you would like to choose?
a. <b> Major </b> treatment
b. <b> Minor </b> treatment
The following codes does not work.
def make_expert_field(label):
return models.BooleanField(
choices=[[True, "<b> Major </b> Treatment"], [False, "<b> Minor </b>Treatment"]],
label=label,
html_labels=True
)
Could you please let me know how to put an HTML code into a python script?
Thank you very much.
Kind regards,
Pim
#2
by
ccrabbe
Hi Pim -
In my experience, oTree doesn't allow for styling or html inside of its automatically-rendered template widgets.
There's two ways to get around this:
(1) put the html elements into your template yourself - the easiest way to do this is to view the source created by oTree, then copy-and-paste the generated html into your template in place of the {{ formfield }} template tag, and then edit it to have the formatting you want
(2) still use the formfield tag, but then add some javascript to your template (probably inside a window.onload function) which edits the oTree-generated html to add your formatting.
For form labels, it's much easier - you just set label='' and add that label text to the format right before the {{ formfield }} tag, and you can style it however you like.
Good luck,
--Chris
#3
by
gr0ssmann
I found the following workaround:
<script>
$(document).ready(function (e) {
labels = document.getElementsByTagName("label");
for (var i = 0; i < labels.length; i++) {
labels[i].innerHTML = labels[i].innerHTML.replaceAll("<", "<").
replaceAll(">", ">");
}
});
</script>