更新html页面而不重新加载golang

I am writing my first server in golang. I have a login form that users will fill out and I want to show messages on the page without reloading.

What I have until now:

  1. index.tmpl
<form class="form-horizontal" role="form"  action="/auth/login" method="POST">
  <div class="form-group">
    <div class="col-sm-2">
      <label for="inputEmail" class="control-label">Email</label>
    </div>
    <div class="col-sm-10">
      <input type="email" name="email" class="form-control input-lg" id="inputEmail" placeholder="Email">
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-2">
      <label for="inputPassword" class="control-label">Password</label>
    </div>
    <div class="col-sm-10">
      <input type="password" name="password" class="form-control input-lg" id="inputPassword" placeholder="Password">
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-12">
      <label for="message" class="control-label text-danger">{{ .message }}</label>
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default btn-lg">Sign in</button>
    </div>
  </div>
</form>

Here, I have a placeholder for message where I want to print all my error messages.

  1. server.go
if _, ok := resp.Item["Email"]; ok {
                if *resp.Item["Email"].S == form.Email && *resp.Item["Password"].S == form.Password {
                    var bucketlist []string
                    for _, dataset := range resp.Item["Datasets"].SS {
                        bucketlist = append(bucketlist, *dataset)
                    }
                    log.Info("User password and email match")
                    c.HTML(http.StatusOK, "bucketlist.tmpl", gin.H{
                        "bucketlist": bucketlist,
                    })
                } else {
                    log.Info("Failure authorizing user: Invalid login")
                    c.HTML(http.StatusUnauthorized, "index.tmpl", gin.H{
                        "message": "Invalid login information.",
                    })
                }
            } else {
                log.Info("Failure authorizing user: Invalid login")
                c.HTML(http.StatusUnauthorized, "index.tmpl", gin.H{
                    "message": "Invalid login information.",
                })
            }
        }
    } else {
        log.Info("Failure authorizing user: No input provided")
        c.HTML(http.StatusUnauthorized, "index.tmpl", gin.H{
            "message": "Please fill the form with valid login information.",
        })
    }

Here, I am handling errors and printing to {{ .message }} placeholder in index.tmpl. If I put in a wrong password, I want the webpage to update the placeholder without reloading the whole page. Is there a way to do that? If there is, a point in the right direction would be greatly appreciated.