Я не могу отправить форму, хотя я использовал preventDefault, (страница обновлена и не предпринимает никаких действий)
Интерпретация: утверждения «страница обновлена» и «использовано» preventDefault "указывают на то, что проблема в том, что код внутри $("#id").submit(
не запускается, а отправка страницы по умолчанию запускается, следовательно," страница обновлена ".
Поскольку событие jquery не запускается, оно вероятно, означает, что HTML не существует при запуске сценария. Обычно с этим можно справиться, добавив do c .ready; OP указывает, что он уже находится в do c .ready.
Альтернативой является использование делегирования событий. Хотя неясно, выполняется ли код до генерации HTML или HTML добавляется после (небольшая разница).
Решение для делегирования событий - использовать:
$(document).on("submit", "#update_form", function(e) {
e.preventDefault();
$.ajax({...
});