Задать вопрос
  • Ошибка syntax 'foreach'?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    функция целиком - ад. я бы выкинул всё это оопэ из картона, все эти статики, публики, селфи - и шарашил обычным спагетти. Не будет вызывать настолько сильный когнитивный диссонанс.

    Но если уж пытаться спасти этот ужас,
    public static function act_page($data, $key) {
          if ($key && isset($data[$key])) {
              self::$path .= '/act/'.$key;
              self::display_page($data[$key]['title']);
          } else {
              self::display_error(404);
        }
    }
    Ответ написан
    1 комментарий
  • Почему данный код работает не правильно?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Причина номер раз: потому что автор кода говнокодер. Ну, то есть - вы даже отформатировать код не удосужились. Причина номер два: проверяется состояние только одного инпута, того, где случилось событие. А надо проверять все.

    Исправляем:

    $('form').on('input', function() {
      $('.button').prop('disabled', $('input', this).get().some(n => !n.value));
    }).trigger('input');

    Или, к чёрту jquery:

    const form = document.querySelector('form');
    const button = document.querySelector('.button');
    
    // можно по-прежнему самостоятельно проверять значения input'ов
    const inputs = [...form.querySelectorAll('input')];
    const onInput = () => button.disabled = !inputs.every(n => n.value);
    form.addEventListener('input', onInput);
    onInput();
    
    // но если добавить input'ам атрибут required...
    form.addEventListener('input', function() {
      button.toggleAttribute('disabled', !this.checkValidity());
    });
    form.dispatchEvent(new Event('input'));
    Ответ написан
    5 комментариев
  • Что делает данная функция?

    dima9595
    @dima9595
    Junior PHP
    Грубо говоря true превращает в false.
    Ответ написан