Aquí te lo dejo:
No soy muy bueno para explicar, espero que entiendas.
//by betokscr
$(document).ready(function(){
var cuadro_activo = 'tv_1';//Variable con el cuadro de texto activo, se asigna a tv_1 por defecto.
var deshabilitar_teclas = true; //Variable que indica si se desactivan o no las teclas, estan deshabilitadas por defecto.
var caps = false;
var shift = false;
$('.tv_box').focus(function(){//Cuando se clickea un elemento que tiene como clase "tv_box"
cuadro_activo = $(this).attr('id');//Se guarda en la variable cuadro_activo el id del elemento clickeado.
});
$('.tv_box').keypress(function(e){
if(deshabilitar_teclas)//Si queremos deshabilitar las teclas
return false;//Retornamos false cada vez que se presiona una
});
$('.tv_let, .tv_sim').click(function(){//Si algun elemento con clase "tv_let" o "tv_sim" es clickeado
$('#'+cuadro_activo).val($('#'+cuadro_activo).val()+$(this).attr('value'));//Se escribe en el cuadro el valor del elemento clickeado
if(shift)//Si el shift esta activo, hacemos las letras minuscula y actualizamos el estado de caps y shift.
{
$('.tv_let').each(function(){
$(this).val($(this).attr('value').toLowerCase());
});
caps = false;
shift = false;
}
});
$('#caps').click(function(){
if(!caps)//Si estan en minuscula, las hacemos mayuscula.
{
//Se toman todos los elementos con clase="tv_let" y su valor se pasa a mayuscula
$('.tv_let').each(function(){
$(this).val($(this).attr('value').toUpperCase());
});
caps = true;
}
else//Si estan en mayuscula, las hacemos minuscula
{
//Se toman todos los elementos con clase="tv_let" y su valor se pasa a minuscula
$('.tv_let').each(function(){
$(this).val($(this).attr('value').toLowerCase());
});
caps = false;
}
});
$('#shift').click(function(){//Cuando se clickea el elemento con id=shift
//Los estados de shift y caps se ponen a verdadero ya que las letras estaran en mayuscula.
shift = true;
caps = true;
//Se toman todos los elementos con clase="tv_let" y su valor se pasa a mayuscula
$('.tv_let').each(function(){
$(this).val($(this).attr('value').toUpperCase());
});
});
$('#backspace').click(function(){//Cuando se clickea el elemento con id=backspace
if($('#'+cuadro_activo).val().length>0)//Se comprueba que el valor en el cuadro activo sea mayor a 0
$('#'+cuadro_activo).val($('#'+cuadro_activo).val().substring(0, $('#'+cuadro_activo).val().length-1));//Si es mayor a 0, se toma la cadena menos la utlima letra y se actualiza el cuadro
});
});
//by betokscr
Saludos