На самом деле, вы используете механизм шаблонов Go для подготовки HTML, который вы отправляете в браузер. Это только заполняет заполнители и в конечном итоге создает только строку (в данном случае HTML), которая будет отправлена по сети в браузер для интерпретации. Это браузер, который может взаимодействовать с пользователем только через такие события, как «onclick». Кроме того, эти события должны быть кодом Javascript, таким как выражение JS или вызов функции:
onclick="jsFunction()"
Вы можете сделать так, чтобы ваш шаблон Go предоставлял функцию для вызова в качестве заполнителя:
onclick="{{.JSFuncCall}}"
Здесь ".JSFuncCall" должен был бы оценить какое-то имя JS-функции (и скобки для вызова), которое вы должны были определить в своем клиентском коде JS. Эта функция Javascript могла бы затем выполнить XHR-вызов к серверу по какому-то конкретному URL, который запускает обработчик Go, запускает код Go, который вы хотите запустить, и затем возвращает ответ, который затем можно обработать обратно в функции JS.