Jquery - как найти текущую позицию курсора - PullRequest
0 голосов
/ 20 февраля 2010

У меня есть пять форм на странице. У меня также есть проверка с использованием плагина проверки jquery. В этом небольшом странном случае я хочу раскрыть, когда сервер не возвращает результатов (ни для одной из форм), и мне нужно отобразить ту же проверку jquery. Я смог сделать это с:

$("#form1").validate().element( ".myid" );             

Теперь я застрял в реализации этого для всех пяти форм (пять форм - пять полей соответственно).

Один из способов - наследие, если-либо еще

var re5digit=/^\d{5}$;
if (document.myform.myid.value.search(re5digit)==-1){
alert("1");
} 
(if (document.myform.myid2.value.search(re5digit)==-1){
alert("2");
}
...

ИЛИ попросить вас взломать JQuery, который может найти мне текущую позицию курсора, и я могу вызвать валидацию? предложения?

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

Я не уверен, что понимаю, как настроен макет и проверка страницы, но вы можете сохранить последнюю форму, в которой был выделенный элемент:

var lastFocusedForm;
$('input').focus(function() {
  lastFocusedForm = $(this).parents('form');
});

// and then when you need to validate...
lastFocusedForm.validate().element( ".myid" );
0 голосов
/ 20 февраля 2010

Я думаю, что вам нужно использовать немного другой подход.Каждый запрос проверки должен принадлежать точной форме.Используя ваш способ, будет легко создать ситуацию, когда сообщения проверки, например, для 1-й формы будут отображаться во 2-й форме.Чтобы избежать таких ошибок, вы должны назначать уникальные идентификаторы для форм и использовать закрытие javascript (http://odetocode.com/Blogs/scott/archive/2007/07/10/closure-on-javascript-closures.aspx и http://www.jibbering.com/faq/faq_notes/closures.html) в вашей функции отправки ajax.

$(document).ready(function(){ 
    var form = $("#ajax-form");
    form.submit(function(){ 
        $.post( 
            "/controller/path", 
            form.serialize(), 
            function(receivedData){ 
                alert(receivedData); 
                form.whateveryouwant(); // do whatever you want with your form
           } 
       ); 
   }); 
});  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...