0
0
mirror of https://github.com/Doodle3D/doodle3d-connect.git synced 2024-06-29 02:21:21 +02:00

Better show password method

This commit is contained in:
peteruithoven 2014-05-08 23:41:02 +02:00
parent 7b929a1506
commit 24c0a31268
3 changed files with 18 additions and 119 deletions

View File

@ -25,7 +25,7 @@
_title = _page.find("h3");
_form = _page.find("form");
_passwordField = _form.find("input[name=password]");
_passwordField.showPassword();
_passwordField.psswrd();
_passwordCloneField = _form.find("input[name=password-clone]");
_submitButton = _form.find("input[type=submit]");

17
js/libs/jquery.psswrd.js Executable file
View File

@ -0,0 +1,17 @@
(function($){
$.fn.extend({
psswrd: function() {
return $(this).each(function(){
console.log(" each: ",$(this));
var $input = $(this);
var $checkbox = $($input.data('typetoggle'));
$checkbox.change(updateType);
updateType();
function updateType() {
$input[0].type = $checkbox.is(':checked') ? 'text' : 'password';
}
});
}
});
})(jQuery);

View File

@ -1,118 +0,0 @@
/*
* @name Show Password
* @descripton
* @version 1.3
* @requires Jquery 1.5
*
* @author Jan Jarfalk
* @author-email jan.jarfalk@unwrongest.com
* @author-website http://www.unwrongest.com
*
* @special-thanks Michel Gratton
*
* @licens MIT License - http://www.opensource.org/licenses/mit-license.php
*/
(function($){
$.fn.extend({
showPassword: function(c) {
// Setup callback object
var callback = {'fn':null,'args':{}}
callback.fn = c;
// Clones passwords and turn the clones into text inputs
var cloneElement = function( element ) {
var $element = $(element);
$clone = $("<input />");
// Name added for JQuery Validation compatibility
// Element name is required to avoid script warning.
$clone.attr({
'type' : 'text',
'class' : $element.attr('class'),
'style' : $element.attr('style'),
'size' : $element.attr('size'),
'name' : $element.attr('name')+'-clone',
'tabindex' : $element.attr('tabindex')
});
return $clone;
};
// Transfers values between two elements
var update = function(a,b){
b.val(a.val());
};
// Shows a or b depending on checkbox
var setState = function( checkbox, a, b ){
if(checkbox.is(':checked')){
update(a,b);
b.show();
a.hide();
} else {
update(b,a);
b.hide();
a.show();
}
};
return this.each(function() {
var $input = $(this),
$checkbox = $($input.data('typetoggle'));
// Create clone
var $clone = cloneElement($input);
$clone.insertAfter($input);
// Set callback arguments
if(callback.fn){
callback.args.input = $input;
callback.args.checkbox = $checkbox;
callback.args.clone = $clone;
}
$checkbox.bind('click', function() {
setState( $checkbox, $input, $clone );
});
$input.bind('keyup', function() {
update( $input, $clone )
});
$clone.bind('keyup', function(){
update( $clone, $input );
// Added for JQuery Validation compatibility
// This will trigger validation if it's ON for keyup event
$input.trigger('keyup');
});
// https://code.google.com/p/showpassword/issues/detail?id=1&thanks=1&ts=1399477719
$clone.bind('change', function() {
update( $clone , $input)
});
// Added for JQuery Validation compatibility
// This will trigger validation if it's ON for blur event
$clone.bind('blur', function() { $input.trigger('focusout'); });
setState( $checkbox, $input, $clone );
if( callback.fn ){
callback.fn( callback.args );
}
});
}
});
})(jQuery);