Как заменить класс у кнопки если все обязательные поля заполнены?

Для замены класса у кнопки в зависимости от заполненности обязательных полей в Yii, вы можете использовать JavaScript совместно с HTML и CSS.

1. Начнем с определения обязательных полей в вашей форме. Для этого вам необходимо добавить атрибуты "required" к соответствующим элементам формы. Например, если у вас есть поле для ввода имени, вы можете добавить атрибут "required" следующим образом:

   <input type="text" name="name" required>

2. Далее, вам нужно определить кнопку, у которой будет меняться класс. Добавьте кнопку с соответствующим id:

   <button id="submitButton">Submit</button>

3. Теперь давайте перейдем к реализации JavaScript. Создайте скрипт и поместите его внутри тега <script> после объявления формы и кнопки. Вот как можно выполнить это:

   <script>
      // Получаем ссылку на кнопку
      var submitButton = document.getElementById("submitButton");

      // Получаем ссылки на обязательные поля
      var requiredFields = document.querySelectorAll("[required]");

      // Назначаем обработчик события на каждое поле ввода
      requiredFields.forEach(function(field) {
         field.addEventListener("input", function() {
            // Проверяем, все ли поля заполнены
            var isFormValid = true;
            requiredFields.forEach(function(field) {
               if (field.value === "") {
                  isFormValid = false;
               }
            });

            // Если все поля заполнены, заменяем класс кнопки
            if (isFormValid) {
               submitButton.classList.add("your-new-class");
            } else {
               submitButton.classList.remove("your-new-class");
            }
         });
      });
   </script>

4. В CSS вы можете определить стили для нового класса your-new-class:

   .your-new-class {
      /* Здесь поместите ваш стиль */
   }

Теперь, при заполнении всех обязательных полей в форме, кнопка будет получать новый класс, который вы определили с помощью CSS. Не забудьте заменить your-new-class на имя вашего класса в коде выше.