Я включил код для своего счетчика textbox / textarea, который я собрал. (надеюсь, в моем сообщении не будет искажено ...)
Скрипт работает довольно хорошо, однако я знаю, что мой код смехотворно раздут из-за моей неопытности в jquery и javascript.
Я надеялся, что кто-нибудь покажет мне, как взять повторяющийся код (// событие от одного до пяти) и поместить его в свою собственную функцию, а затем вызывать эту функцию для каждого события.
Спасибо
Jeff
$(document).ready(function() {
if ($('span[class=tbc] input[type=text], span[class=tbc] textarea')) {
$('span[class=tbc] input[type=text], span[class=tbc] textarea').each(function() {
var maxL = $(this).attr('MaxLength');
$(this).siblings('span[class=tbc]').prepend('<br /><span id="spanID1">Characters remaining: </span>');
$(this).siblings('span[class=tbc]').append('<strong>' + maxL + '</strong>');
//event one
$(this).keyup(function() {
var cnt = $(this).val().length;
var chars = maxL-cnt;
var mesg = $(this).parent('span').attr('ID');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><strong>' + chars + '</strong>');
if (cnt > maxL - 1) {
//alert('Cannot enter anymore characters.');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><span style="color: red;"><strong>' + chars + '</strong> (Cannot enter anymore characters.)</span>');
}
}); //end keyup function
//event two
$(this).keydown(function() {
var cnt = $(this).val().length;
var chars = maxL-cnt;
var mesg = $(this).parent('span').attr('ID');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><strong>' + chars + '</strong>');
if (cnt > maxL - 1) {
//alert('Cannot enter anymore characters.');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><span style="color: red;"><strong>' + chars + '</strong> (Cannot enter anymore characters.)</span>');
}
}); //end keydown function
//event three
$(this).mouseout(function() {
var cnt = $(this).val().length;
var chars = maxL-cnt;
var mesg = $(this).parent('span').attr('ID');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><strong>' + chars + '</strong>');
if (cnt > maxL - 1) {
//alert('Cannot enter anymore characters.');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><span style="color: red;"><strong>' + chars + '</strong> (Cannot enter anymore characters.)</span>');
}
}); //end mouseout function
//event four
$(this).mousemove(function() {
var cnt = $(this).val().length;
var chars = maxL-cnt;
var mesg = $(this).parent('span').attr('ID');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><strong>' + chars + '</strong>');
if (cnt > maxL - 1) {
//alert('Cannot enter anymore characters.');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><span style="color: red;"><strong>' + chars + '</strong> (Cannot enter anymore characters.)</span>');
}
}); //end mousemove function
//event five
$(this).blur(function() {
var cnt = $(this).val().length;
var chars = maxL-cnt;
var mesg = $(this).parent('span').attr('ID');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><strong>' + chars + '</strong>');
if (cnt > maxL - 1) {
//alert('Cannot enter anymore characters.');
$(this).siblings('span[class=tbc]').html('<br /><span>Characters remaining: </span><span style="color: red;"><strong>' + chars + '</strong> (Cannot enter anymore characters.)</span>');
}
}); //end blur function
}); //end each loop
} //end if ($('span[class=tbc] input[type=text]
}); //end ready