Если без ID, то через форму добираетесь до нужного инпута по имени или индексу и так же присваиваете ему значение title вашего документа. Либо вообще не добавлять никаких id, а сделать так
Потому, что call_user_func_array() возвращает результат выполнения, а в данном контексте ничего не возвращается, поэтому и null.
Ситуация меняется, если вы включаете чпу c помощью seo_pro.
в call_user_func_array() сначала кидается контроллер ControllerCommonSeoPro, который в сою очередь вернет не null, а нужный Action, который опять бросается в call_user_func_array() и результатом уже будет null.
(добавление)
Как вариант, можете на каждом этапе понавтыкать везде var_damp()`ов и посмотрите результаты выполнения каждой функции.
В файле index.php, после создания экземпляра класса Front, в его свойство $pre_action записывается массив объектов Action.
В свойствах объекста Action содержаться: путь до контроллера, имя класса контроллера и метод.
После добавления массива акшенов, вызывается метод dispatch($action,$error), где $action = текущий контроллер, который взят из $request и $error - экземляр класса Ошибки.
Что происходит дальше.
сначала в форыче бежим по $pre_action и кидаем каждый Action в метод execute(Action);
В execute проверяется, есть ли такой файл, класс, метод и если есть, то бросается это все дело в call_user_func_array()
и возвращается $result = null;
Если какя-нибудь проверка вернет false, в $result бросится экземляр класса ошибки.
На каждой итерации проверяется $result что там? null или объект? и если не null, то выходим из цикла, а в $action присваивается объект ошибки.
После выхода из forech заходим в цикл wile и бросим туда либо $action = который передали в dispatch($action,$error) либо объект с ошибкой и опять вызывается execute()
1. Повесьте отслеживание события onchange на все импуты, которые нужны.
2. Проверьте сначала input на disabled и если оно включено, то тогда проверяйте на пустое значение