html:
<form>
<textarea id="new_task" name="new_task" ></textarea>
</form>
java script (jquery):
function testStr(strLen) {
if (strLen <= 0) flag = 0
else if (strLen > 0 & strLen <= 249) flag = 1
else if (strLen >= 250 & strLen < 260) flag = 2
else if (strLen >= 260 & strLen < 270) flag = 3
else if (strLen >= 270 & strLen < 280) flag = 4
else if (strLen >= 280 & strLen < 290) flag = 5
else if (strLen >= 290 & strLen < 300) flag = 6
else if (strLen >= 300) flag = 7
return flag
}
$(document).ready(function() {
$('#new_task').bind('keydown', function(e) {
var strLen = $(this).val().length;
flag = testStr(strLen);
console.log('flag: ', flag, 'strLen:', strLen);
});
});
в результате при вводе первого символа console.log выдаёт flag: 0 strLen: 1, хотя по
моей логике должен выводиться flag равный 1:
1. вводим первый символ в текстовое поле
2. срабатывает событие keydown (строка 14)
3. получаем длину длину поля #new_task равную 1 (строка 15)
4. в функцию testStr передаём параментр strLen равный 1 (строка 16)
5. в testStr при strLen == 1 должен быть флаг == 1, а возвращает flag == 0
в чём проблема?
Заранее спасибо.