простой вопрос
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, хотя по 1. вводим первый символ в текстовое поле 2. срабатывает событие keydown (строка 14) 3. получаем длину длину поля #new_task равную 1 (строка 15) 4. в функцию testStr передаём параментр strLen равный 1 (строка 16) 5. в testStr при strLen == 1 должен быть флаг == 1, а возвращает flag == 0 в чём проблема? Заранее спасибо. |
Замените keydown на keypress
|
... bind('keydown' ... попробуйте поменять на ... bind('keyup' ... |
to zebra
keydown в его случае будет ту же проблему создавать |
спасибо ребята, с этим вопросом разобрался :-)
|
Да перепутал, keyup
|
Часовой пояс GMT +3, время: 11:18. |