diff --git a/djblets/static/djblets/js/configForms/views/listItemView.js b/djblets/static/djblets/js/configForms/views/listItemView.js
index 49220263f3123ba8a9eca9ccaf501db66e72dab0..bcc436942868d0f2a4dedb66382954dd50ae5116 100644
--- a/djblets/static/djblets/js/configForms/views/listItemView.js
+++ b/djblets/static/djblets/js/configForms/views/listItemView.js
@@ -185,23 +185,30 @@ Djblets.Config.ListItemView = Backbone.View.extend({
         var actionHandlerName = (action.enabled !== false
                                  ? this.actionHandlers[action.id]
                                  : null),
-            checkboxID,
+            inputID,
             $action,
+            $label,
             $result;
 
-        if (action.type === 'checkbox') {
-            checkboxID = _.uniqueId('action_check');
+        if (action.type === 'checkbox' || action.type === 'radio') {
+            inputID = _.uniqueId('action_' + action.type);
             $action = $('<input/>')
                 .attr({
-                    type: "checkbox",
-                    id: checkboxID
+                    name: action.name,
+                    type: action.type,
+                    id: inputID
                 });
+            $label = $('<label/>')
+                .attr('for', inputID)
+                .text(action.label);
+
+            if (action.id) {
+                $label.addClass('config-forms-list-action-label-' + action.id);
+            }
 
             $result = $('<span/>')
                 .append($action)
-                .append($('<label/>')
-                    .attr('for', checkboxID)
-                    .text(action.label));
+                .append($label);
 
             if (action.propName) {
                 $action.bindProperty('checked', this.model, action.propName);
