javascript 在Ultimate Membership pro表单中显示密码功能

643ylb08  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(118)

如何在表单中添加显示密码字段?我在函数中尝试了此代码,但没有工作add_filter(“um_confirm_user_password_form_edit_field”,“um_user_password_form_edit_field”,10,2);add_filter(“um_user_password_form_edit_field”,“um_user_password_form_edit_field”,10,2);public function_user_password_form_edit_field($output,$set_mode){

ob_start();
 ?>
<div id='um-field-show-passwords-<?php echo $set_mode;?>' style='text-align:right;display:block;'>
    <i class='um-faicon-eye-slash'></i>
    <a href='#'><?php _e("Show password","ultimate-member"); ?></a>
</div>
<script type='text/javascript'>
    jQuery('div[id="um-field-show-passwords-<?php echo $set_mode;?>"] a').click(function(){ 
     
        var $parent = jQuery(this).parent("div"); 
        var $form = jQuery(".um-<?php echo $set_mode;?> .um-form");

        $parent.find("i").toggleClass(function() {
            if ( jQuery( this ).hasClass( "um-faicon-eye-slash" ) ) {
                $parent.find("a").text('<?php _e("Hide password","ultimate-member"); ?>');
                jQuery( this ).removeClass( "um-faicon-eye-slash" )
                $form.find(".um-field-password").find("input[type=password]").attr("type","text");
               return "um-faicon-eye";
            }
             
            jQuery( this ).removeClass( "um-faicon-eye" );
            $parent.find("a").text('<?php _e("Show password","ultimate-member"); ?>');
            $form.find(".um-field-password").find("input[type=text]").attr("type","password");
          
            return "um-faicon-eye-slash";
        });

        return false; 

    });
</script>
<?php 
return $output.ob_get_clean();

}

kgsdhlau

kgsdhlau1#

<?php
add_filter( "um_confirm_user_password_form_edit_field", "um_user_password_form_edit_field", 10, 2 );
add_filter( "um_user_password_form_edit_field", "um_user_password_form_edit_field", 10, 2 );

function um_user_password_form_edit_field( $output, $set_mode ) {
    ob_start();
    ?>
    <div id='um-field-show-passwords-<?php echo $set_mode; ?>' style='text-align:right;display:block;'>
        <i class='um-faicon-eye-slash'></i>
        <a href='#'><?php _e( "Show password", "ultimate-member" ); ?></a>
    </div>
    <script type='text/javascript'>
        jQuery( document ).ready( function( $ ) {
            $( 'body' ).on( 'click', 'div#um-field-show-passwords-<?php echo $set_mode; ?> a', function() {
                var $parent = $( this ).parent( 'div' );
                var $form = $( '.um-<?php echo $set_mode; ?> .um-form' );

                $parent.find( 'i' ).toggleClass( function() {
                    if ( $( this ).hasClass( 'um-faicon-eye-slash' ) ) {
                        $parent.find( 'a' ).text( '<?php _e( "Hide password", "ultimate-member" ); ?>' );
                        $( this ).removeClass( 'um-faicon-eye-slash' )
                        $form.find( '.um-field-password' ).find( 'input[type=password]' ).attr( 'type', 'text' );
                        return 'um-faicon-eye';
                    }
                    $( this ).removeClass( 'um-faicon-eye' );
                    $parent.find( 'a' ).text( '<?php _e( "Show password", "ultimate-member" ); ?>' );
                    $form.find( '.um-field-password' ).find( 'input[type=text]' ).attr( 'type', 'password' );
                    return 'um-faicon-eye-slash';
                } );

                return false;
            } );
        } );
    </script>
    <?php
    return $output . ob_get_clean();
}

该代码旨在向WordPress中的Ultimate Member插件生成的表单中的密码字段添加“显示密码”功能。下面是代码的详细说明:
两个过滤器钩子,“um_confirm_user_password_form_edit_field”和“um_user_password_form_edit_field”,被定义并与“um_user_password_form_edit_field”函数挂钩。这些过滤器钩子被假定为在您的WordPress主题或插件中正确定义和挂钩。
在“um_user_password_form_edit_field”函数中,输出缓冲是通过ob_start()启动的,以捕获生成的HTML。
创建ID为“um-field-show-passwords”的元素,该元素包含一个图标和一个带有文本“Showpassword”的锚链接。
包含一个JavaScript块来处理“Show password”锚链接上的click事件。它使用jQuery根据filter钩子提供的$set_mode参数来定位适当的DOM元素。
当单击“Show password”链接时,JavaScript代码通过将其type属性从“password”更改为“text”(反之亦然)来切换密码字段的可见性。当显示密码时,它还将锚链接的文本更新为“Hide password”,当隐藏密码时,它将锚链接的文本更新为“Show password”。
捕获的HTML输出和JavaScript代码然后通过$output参数和ob_get_clean()函数返回到表单中的适当位置。

相关问题