|
|
|
| Здравствуйте!
$(function(){
$('input#login').keyup($.debounce(350, checkLogin ) ); // This is the line you want!
// Trigger the callbacks once to show some initial (zero) values.
//checkLogin();
});
|
код срабатывает если присутствует чистая input (внузу первая)
если ее убрать то функция не работает
<input type="text" >
<input id="login" type="text" maxlength="30" tabindex="1" autocomplete="off" value="" name="login">
|
вторая строчка генериться java springMVC | |
|
|
|
|
|
|
|
для: vadimka
(05.03.2013 в 18:53)
| | Нужно раскомментировать объявленную ранее ф-ию checkLogin();
Причем checkLogin(); должна быть объявлена в теле $(function(){...});
И ф-цию нужно разместить после сгенерированного инпута. | |
|
|
|
|
|
|
|
для: Deed
(05.03.2013 в 22:56)
| | все сделал - не работает! | |
|
|
|
|
|
|
|
для: vadimka
(06.03.2013 в 13:41)
| | Дальше вообще чудеса: если забрать
то с первого раза не срабатывает, но если сделать F5 то функция работает (IE, FF) | |
|
|
|
|
|
|
|
для: vadimka
(06.03.2013 в 14:00)
| |
$('input#login').attr("autocomplete", "off");
$('input#login').keyup( $.debounce(350, checkLogin ) ); // This is the line you want!
|
такой код вообще не работает | |
|
|
|
|
|
|
|
для: vadimka
(06.03.2013 в 14:23)
| | При обращению к элементу по его ID указывать тег элемента нет необходимости, указывать его желательно при обращении к элементу по классу.
Сравните работу обработчика в двух случаях:
<script>
$(function(){
//сначала запустите этот обработчик
$('#login').keyup(alert(1));
//а затем этот
$('#login').keyup(function(){
alert(1)
});
});
</script>
<input id="login" type="text" maxlength="30" tabindex="1" autocomplete="off" value="" name="login" />
|
| |
|
|
|
|
|
|
|
для: confirm
(06.03.2013 в 14:54)
| | чето я этот пример не могу запустить в чистом даже html | |
|
|
|
|
|
|
|
для: vadimka
(06.03.2013 в 15:36)
| | Так наверное эти куски кода надо еще правильно и в нужном месте страницы разместить. Или вы не знаете как это делается? | |
|
|
|
|
|
|
|
для: confirm
(06.03.2013 в 15:42)
| | извините, я уже совсем заработался разместил в чистом html и не прикрутил jquery
:) надо сделать там уат | |
|
|
|
|
 1.1 Кб |
|
|
для: vadimka
(06.03.2013 в 15:48)
| | А вы, вообще-то, библиотеку с debounce подключили?
Вот вам архив с готовым примером. | |
|
|
|
|
|
|
|
для: Deed
(06.03.2013 в 17:54)
| | Ваш пример работает как и в моем случае если присутствует лишний
<input>
<input id="login" type="text" maxlength="30" tabindex="1" autocomplete="off" value="" name="login">
|
если забрать autocomplete="off"
тогда работает без допольнительного <input> :
<input id="login" type="text" maxlength="30" tabindex="1" value="" name="login">
|
не с первой попытки, а после F5 | |
|
|
|
|
|
|
|
для: vadimka
(06.03.2013 в 18:38)
| | А если сразу после подключения debounce переписать:
<script type="text/javascript">
document.createElement('input');
$(function(){
var checkLogin = function(){
var vv = $('#login').val();
$('#checks').text(vv);
}
$('#login').bind('keyup', $.debounce(checkLogin,1500));
});
</script>
|
То есть, как бы наперед создать в DOM input (без присвоения его переменной!).
Дело в том, что когда вы объявляете фанкшин, инпута еще в ДОМе нет, если я правильно понял условие.
Или, может, создать "левый" инпут где-то в самом начале <body> и скрыть его в диве?
(Ох, и получу я за такое от confirm'a!) | |
|
|
|
|
|
|
|
для: Deed
(06.03.2013 в 19:20)
| | Да мне то. Я написал ему на выполнение, с целью дальше предложить "урезать" как вздумается первую запись. Хотя не для него такое, а просто объяснить тоже не получится.
Что же касается этого плагина, то в сети есть описания багов его. А что касается моего отношения ко всему выше, выкинуть его вообще, так как данную операцию реализовать очень просто, без всякого плагина. И вообще, по меньше подцеплять всяких плюшек, не всегда они золото, не являются всегда первой необходимостью, и как в этом случае, реализация "не грузить сервер" совсем не означает поступать именно так, решить ее можно и другими методами. | |
|
|
|
|
|
|
|
для: confirm
(06.03.2013 в 19:47)
| | это не моя идея использовать, а пришло свыше:) | |
|
|
|
|
|
|
|
для: vadimka
(06.03.2013 в 19:56)
| | Я вам писал что выполнить, вы это сделали? И что дает первая запись? Открою секрет - alert() сработает даже так:
$('#login').click(alert(1));
и так:
$('#login').cl(alert(1));
и так:
cl(alert(1));
Не вдаваясь в подробности, скажу сразу, что это:
$('input#login').keyup($.debounce(350, checkLogin ) );
предполагает, что будет возвращаться контекст, иначе этот метод в никуда. Хотите ищите в сети описание бага, исправляйте, а хотите как хотите, но чье-то хотение еще не означает подключать нечто, которое можно решить просто. Все решение, это таймер с контролем флага, вот и весь плагин. При этом, смотря еще что подразумевать под checkLogin - если это проверка занятости имени, еще куда ни шло, а если контроль существующего, то уже излишек, и лучше по потере фокуса. Так что думайте и решайте. | |
|
|
|
|
|
|
|
для: confirm
(06.03.2013 в 20:11)
| | Понимаю,что это мегаКостыль и извращение, но для лучшего освоение джава-скрипт:)
Вот что "работает"
var anInput = document.createElement("input");
anInput.setAttribute("type", "text");
anInput.setAttribute("style", "visibility:hidden;");
$('#divWhereIsHiddenInput').append(anInput);
|
| |
|
|
|
|
|
|
|
для: vadimka
(07.03.2013 в 14:37)
| | Ну да, а на очередную кривую подключаемую хрень еще чего либо прицепить, и таким макаром и продолжать.
Для лучшего освоения надо изучать, так как вы так и не поняли в чем проблема. И лучше - выбросите эту хрень, и добавьте свой таймер, это ровно то, чем и занимается ваш "чудо плагин". | |
|
|
|
|
|
|
|
для: confirm
(07.03.2013 в 14:49)
| | Плагин работает на чистом html - нормально, я не спорю...
На страницу, куда прикручиваю - множество js там конфликты:) насколько понимаю чистый keyup не срабатывает:)
Все работает если не function () или ready, а -
$(window).load(function () {
надо смотреть на конфликты... | |
|
|
|