如何在表单中添加显示密码字段?我在函数中尝试了此代码,但没有工作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();
}
1条答案
按热度按时间kgsdhlau1#
该代码旨在向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()函数返回到表单中的适当位置。