diff --git a/src/js/_enqueues/lib/nav-menu.js b/src/js/_enqueues/lib/nav-menu.js index bed4216595..cd62acc36f 100644 --- a/src/js/_enqueues/lib/nav-menu.js +++ b/src/js/_enqueues/lib/nav-menu.js @@ -835,6 +835,20 @@ } } }); + + $( '#menu-name' ).on( 'input', _.debounce( function () { + var menuName = $( document.getElementById( 'menu-name' ) ), + menuNameVal = menuName.val(); + + if ( ! menuNameVal || ! menuNameVal.replace( /\s+/, '' ) ) { + // Add warning for invalid menu name. + menuName.parent().addClass( 'form-invalid' ); + } else { + // Remove warning for valid menu name. + menuName.parent().removeClass( 'form-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.replace( /\s+/, '' ) ) { + menuName.parent().addClass( 'form-invalid' ); return false; } // Copy menu theme locations diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index 1bc36791db..1355154c6d 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -1779,8 +1779,11 @@ 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 + * see https://core.trac.wordpress.org/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',