I came across this problem while working on #2731, where I needed to target some form elements in CSS. This turned out to not be as easy as expected, because the names of the form elements were too generic (like label
, delta
, and description
). The requirement was to add more specific classes to the wrapper <div>
s of the form elements.
I will explain in code examples, but instead of using the code in that specific use case, I will use more simplified and generic examples. So say you have this form definition:
$form['parent'] = array(
'#parents' => array(),
);
$form['parent']['checkbox'] = array(
'#type' => 'checkbox',
'#title' => t('Do something'),
);
$form['parent']['textfield'] = array(
'#type' => 'textfield',
'#title' => t('Enter some text'),
);
This will produce the following code:
<form class="some-form" id="some-form" >
<div>
<div class="form-item form-type-checkbox form-item-checkbox">
<label class="option" for="edit-checkbox">Do something </label>
<input type="checkbox" id="edit-checkbox" name="checkbox" class="form-checkbox">
</div>
<div class="form-item form-type-textfield form-item-textfield" >
<label for="edit-textfield">Enter some text </label>
<input type="text" id="edit-textfield" name="textfield" class="form-text">
</div>
</div>
</form>
...
Recent comments
nice find! the links for the most recently updated issues in the core and contrib queues are a great way to stay on top of things—especially now that the feature freeze is just around the corner...
Seeing what issues are new
A simple way — use Field Group to create a container for fields https://backdropcms.org/project/field_group and CSS Flex оr Grid to alignment. You can also create Fieldsets to...
Layout also for /node/add/ forms?
Yes. The are several ways to do this: Install Mail System and select "Testing" for delivery in admin/config/system/mailsystem Install Maillog / Mail developer...
Prevent Backdrop from sending emails