diff --git src/js/_enqueues/lib/nav-menu.js src/js/_enqueues/lib/nav-menu.js
index bed4216595..a85b6f4c5e 100644
--- src/js/_enqueues/lib/nav-menu.js
+++ src/js/_enqueues/lib/nav-menu.js
@@ -835,6 +835,20 @@
 					}
 				}
 			});
+
+			$( '#menu-name' ).on('keyup', _.debounce( function () {
+				var menuName = $( document.getElementById( 'menu-name' ) ),
+					menuNameVal = menuName.val();
+
+				if ( ! menuNameVal || menuNameVal === menuName.attr( 'title' ) || ! menuNameVal.replace( /\s+/, '' ) ) {
+					// Add warning for invalid menu name
+					menuName.addClass( 'invalid' );
+				} else {
+					// Remove warning for valid menu name
+					menuName.removeClass( 'invalid' );
+				}
+			}, 500 ));
+
 			$('#add-custom-links input[type="text"]').keypress(function(e){
 				$('#customlinkdiv').removeClass('form-invalid');
 
@@ -1166,8 +1180,8 @@
 			menuName = $('#menu-name'),
 			menuNameVal = menuName.val();
 			// Cancel and warn if invalid menu name
-			if( !menuNameVal || menuNameVal == menuName.attr('title') || !menuNameVal.replace(/\s+/, '') ) {
-				menuName.parent().addClass('form-invalid');
+			if( !menuNameVal || menuNameVal === menuName.attr('title') || !menuNameVal.replace(/\s+/, '') ) {
+				menuName.addClass('invalid');
 				return false;
 			}
 			// Copy menu theme locations
diff --git src/wp-admin/css/forms.css src/wp-admin/css/forms.css
index 3013434604..82bb5447d1 100644
--- src/wp-admin/css/forms.css
+++ src/wp-admin/css/forms.css
@@ -238,10 +238,12 @@ textarea[readonly] {
 	color: #72777c;
 }
 
+
 .form-invalid input,
 .form-invalid input:focus,
 .form-invalid select,
-.form-invalid select:focus {
+.form-invalid select:focus,
+input.invalid{
 	border-color: #dc3232 !important;
 	box-shadow: 0 0 2px rgba( 204, 0, 0, 0.8 );
 }
diff --git src/wp-includes/script-loader.php src/wp-includes/script-loader.php
index e6dc71fcad..292f928276 100644
--- src/wp-includes/script-loader.php
+++ src/wp-includes/script-loader.php
@@ -1779,8 +1779,15 @@ function wp_default_scripts( &$scripts ) {
 			)
 		);
 
-		// Navigation Menus
-		$scripts->add( 'nav-menu', "/wp-admin/js/nav-menu$suffix.js", array( 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'wp-lists', 'postbox', 'json2' ) );
+		/**
+		 * Navigation Menus
+		 *
+		 * Adding underscore as a dependency to utilize _.debounce
+		 * @since 5.0.0
+		 *
+		 * @see https://core.trac.wordpress.org/attachment/ticket/42321/
+		 */
+		$scripts->add( 'nav-menu', "/wp-admin/js/nav-menu$suffix.js", array( 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'wp-lists', 'postbox', 'json2', 'underscore' ) );
 		did_action( 'init' ) && $scripts->localize(
 			'nav-menu',
 			'navMenuL10n',
