В Materialise css, когда на входе есть контент или он сфокусирован, метка получает класс 'active'. Это перемещает этикетку вверх, сжимает ее и окрашивает. Когда вы связываетесь с DOM через Javacript, ввод не знает об изменении. Чтобы вручную «сбросить» вход, вам нужно добавить класс «активный» к любому входу, который имеет контент (или заполнитель).
$("label").addClass('active');
На рисунке ниже у меня есть два идентичных входа, и в setTimeout мы удаляем активный класс из второй метки, чтобы воспроизвести проблему, которую вы видите.
https://codepen.io/doughballs/pen/zYGWRbj
Обратите внимание, в документации есть Перечисленная функция, которая делает это для динамически создаваемых входов:
Предварительное заполнение текстовых входов Если у вас возникли проблемы с ярлыками, перекрывающими предварительно заполненное содержимое, попробуйте добавить к метке class = "active". Вы также можете вызвать функцию M.updateTextFields (); переинициализировать все метки материализации на странице, если вы динамически добавляете входные данные.
https://materializecss.com/text-inputs.html