Fixes #18955: Include the "clear" button only for non-required dropdown fields (#18971)

* Include the 'clear' button only for non-required fields

* Apply the 'required' attribute for mandatory <select> fields

* Recompile static assets
This commit is contained in:
Jeremy Stretch
2025-04-11 08:20:24 -04:00
committed by GitHub
parent 28e62d21a9
commit 6ed41f6680
4 changed files with 13 additions and 11 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -1
View File
@@ -5,11 +5,13 @@ interface PluginConfig {
export function getPlugins(element: HTMLSelectElement): object {
const plugins: PluginConfig = {};
// Enable "clear all" button
// Enable "clear all" button for non-required fields
if (!element.required) {
plugins.clear_button = {
html: (data: Dict) =>
`<i class="mdi mdi-close-circle ${data.className}" title="${data.title}"></i>`,
};
}
// Enable individual "remove" buttons for items on multi-select fields
if (element.hasAttribute('multiple')) {
@@ -1,4 +1,4 @@
<select name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %} class="form-select {% if 'class' in widget.attrs %} {{ widget.attrs.class }}{% endif %}">{% for group_name, group_choices, group_index in widget.optgroups %}{% if group_name %}
<select name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %} class="form-select{% if 'class' in widget.attrs %} {{ widget.attrs.class }}{% endif %}"{% if widget.required %} required{% endif %}>{% for group_name, group_choices, group_index in widget.optgroups %}{% if group_name %}
<optgroup label="{{ group_name }}">{% endif %}{% for option in group_choices %}
{% include option.template_name with widget=option %}{% endfor %}{% if group_name %}
</optgroup>{% endif %}{% endfor %}