diff --git a/js/states.js b/js/states.js
index 4015b77..600fcc5 100644
--- a/js/states.js
+++ b/js/states.js
@@ -495,7 +495,7 @@ states.State.prototype = {
     // Only act when this change was triggered by a dependency and not by the
     // element monitoring itself.
     if (e.trigger) {
-      $(e.target)
+      $(e.target).find('input, select, textarea, button')
         .attr('disabled', e.value)
         .filter('.form-element')
           .closest('.form-item, .form-submit, .form-wrapper')[e.value ? 'addClass' : 'removeClass']('form-disabled');
