Make WordPress Core

Ticket #33398: 33398.1.diff

File 33398.1.diff, 1.9 KB (added by peterwilsoncc, 9 years ago)
  • src/wp-admin/js/user-profile.js

    diff --git a/src/wp-admin/js/user-profile.js b/src/wp-admin/js/user-profile.js
    index 7ebdd77..b713180 100644
    a b  
    1515                $toggleButton,
    1616                $submitButtons,
    1717                $submitButton,
    18                 currentPass;
     18                currentPass,
     19
     20                inputEvent;
     21
     22        /**
     23         * Detect whether password inputs should use the keyup
     24         * or input event. Input is preferred but lacking support
     25         * in legacy browsers.
     26         *
     27         * @ticket 33398
     28         */
     29        if ( 'oninput' in document.createElement('input') ) {
     30                inputEvent = 'input';
     31        }
     32        else {
     33                inputEvent = 'keyup';
     34        }
    1935
    2036        function generatePassword() {
    2137                if ( typeof zxcvbn !== 'function' ) {
     
    4763                        .addClass( $pass1[0].className )
    4864                        .data( 'pw', $pass1.data( 'pw' ) )
    4965                        .val( $pass1.val() )
    50                         .on( 'keyup', function () {
     66                        .on( inputEvent, function () {
    5167                                if ( $pass1Text.val() === currentPass ) {
    5268                                        return;
    5369                                }
     
    6278                        generatePassword();
    6379                }
    6480
    65                 $pass1.on( 'keyup pwupdate', function () {
     81                $pass1.on( inputEvent + ' pwupdate', function () {
    6682                        if ( $pass1.val() === currentPass ) {
    6783                                return;
    6884                        }
     
    165181                 * This fixes the issue by copying any changes from the hidden
    166182                 * pass2 field to the pass1 field, then running check_pass_strength.
    167183                 */
    168                 $pass2 = $('#pass2').on( 'keyup', function () {
     184                $pass2 = $('#pass2').on( inputEvent, function () {
    169185                        if ( $pass2.val().length > 0 ) {
    170186                                $pass1.val( $pass2.val() );
    171187                                $pass2.val('');
     
    246262                var $colorpicker, $stylesheet, user_id, current_user_id,
    247263                        select = $( '#display_name' );
    248264
    249                 $('#pass1').val('').on( 'keyup pwupdate', check_pass_strength );
     265                $('#pass1').val('').on( inputEvent + ' pwupdate', check_pass_strength );
    250266                $('#pass-strength-result').show();
    251267                $('.color-palette').click( function() {
    252268                        $(this).siblings('input[name="admin_color"]').prop('checked', true);