diff --git a/routers/web/org/projects.go b/routers/web/org/projects.go
index df16d0a4c7..5d8005781d 100644
--- a/routers/web/org/projects.go
+++ b/routers/web/org/projects.go
@@ -245,9 +245,11 @@ func EditProject(ctx *context.Context) {
 		return
 	}
 
+	ctx.Data["projectID"] = p.ID
 	ctx.Data["title"] = p.Title
 	ctx.Data["content"] = p.Description
 	ctx.Data["redirect"] = ctx.FormString("redirect")
+	ctx.Data["HomeLink"] = ctx.ContextUser.HomeLink()
 
 	ctx.HTML(http.StatusOK, tplProjectsNew)
 }
diff --git a/routers/web/repo/projects.go b/routers/web/repo/projects.go
index e15f548a38..91e17dee29 100644
--- a/routers/web/repo/projects.go
+++ b/routers/web/repo/projects.go
@@ -232,6 +232,7 @@ func EditProject(ctx *context.Context) {
 		return
 	}
 
+	ctx.Data["projectID"] = p.ID
 	ctx.Data["title"] = p.Title
 	ctx.Data["content"] = p.Description
 	ctx.Data["card_type"] = p.CardType
diff --git a/templates/projects/new.tmpl b/templates/projects/new.tmpl
index 826869ac5d..e7927221a8 100644
--- a/templates/projects/new.tmpl
+++ b/templates/projects/new.tmpl
@@ -50,7 +50,7 @@
 				<div class="ui divider"></div>
 				<div class="ui left">
 					{{if .PageIsEditProjects}}
-					<a class="ui cancel button" href="{{.RepoLink}}/projects">
+					<a class="ui cancel button" href="{{$.HomeLink}}/-/projects{{if eq .redirect "project"}}/{{.projectID}}{{end}}">
 						{{.locale.Tr "repo.milestones.cancel"}}
 					</a>
 					<button class="ui primary button">
diff --git a/templates/repo/projects/new.tmpl b/templates/repo/projects/new.tmpl
index b53a47dc58..20c4d2ebfc 100644
--- a/templates/repo/projects/new.tmpl
+++ b/templates/repo/projects/new.tmpl
@@ -72,7 +72,7 @@
 				<div class="ui divider"></div>
 				<div class="ui left">
 					{{if .PageIsEditProjects}}
-					<a class="ui cancel button" href="{{.RepoLink}}/projects">
+					<a class="ui cancel button" href="{{.RepoLink}}/projects{{if eq .redirect "project"}}/{{.projectID}}{{end}}">
 						{{.locale.Tr "repo.milestones.cancel"}}
 					</a>
 					<button class="ui primary button">
diff --git a/web_src/js/features/common-global.js b/web_src/js/features/common-global.js
index d533877c27..3546a052b3 100644
--- a/web_src/js/features/common-global.js
+++ b/web_src/js/features/common-global.js
@@ -322,7 +322,7 @@ export function initGlobalButtons() {
   // There are many "cancel button" elements in modal dialogs, Fomantic UI expects they are button-like elements but never submit a form.
   // However, Gitea misuses the modal dialog and put the cancel buttons inside forms, so we must prevent the form submission.
   // There are a few cancel buttons in non-modal forms, and there are some dynamically created forms (eg: the "Edit Issue Content")
-  $(document).on('click', 'form .ui.cancel.button', (e) => {
+  $(document).on('click', 'form button.ui.cancel.button', (e) => {
     e.preventDefault();
   });