Я узнал, в чем заключается моя проблема, и решил, что опубликую ее здесь на случай, если другие столкнутся с подобной проблемой.
Был сделан AJAX-вызов, в котором была дата_старта, поэтому я поместил код в AJAX-вызов, и он сработал.
$.ajax({
type: "POST",
url: "{% url whatever %}",
dataType: "json",
data: q,
success: function(json) {
$("#id_maturity_date").val(json.maturity_date);
var mat = $("#id_maturity_date").val();
$("span.mat_date").text(mat);
$("#id_start_date").val(json.start_date);
var sd = $("#id_start_date").val();
$("span.start_date").text(sd);
$("#id_term_years").val(json.term_years);
$("#id_term_months").val(json.term_months);
...
}
});
По какой-то причине .change () не запускается, когда он заполняется таким образом, поэтому я никогда не смог получить значение, если не вошел в вызов AJAX.
Спасибо всем за ваш вклад.