Od niedawna uzywam livevalidation (livevalidation.com) do weryfikowania danych w systemie while-you-type.
Do skryptu samej veryfikacji dodalem funkcje ktora ma robic .focs na inpucie ktore nie przeszlo weryfikacji.
W momencie kiedy stworzenie wiele form na jednej stronie html i kazda z osobna wsadze do zakladki (ktore wykonalem dzieki jquery UI - tabs) - nie wiem jak wykonac weryfikacje formularza ktory jest wlasnie otwarty.
Mozna co prawda recznie przypisac formule do kazdego formularza ale nie o to przeciez chodzi.
Przyklad live tutaj: http://webiq.co/livevalidation-ui-tabs/
Form 1 dziala, form 2 nie. Chyba ze skopiuje jeszcze raz cala funkcje i stworze nowa zmienna z uzyciem ID pierwszego inputa w drugiej zakladce.
Co chce osiagnac:
- aby walidowal tylko aktualny formularz i sam znajdowac pierwszego inputa w danej formie
- walidacje tylko aktualnie wlaczonego formularza
- onfocus na pierwszym nie wypelnionym input po walidacji
- po poprawnym wypelnieniu formularza pojawia sie alert - w tym momencie strona sie przeladowuje
Probowalem zrobic to wlasnymi silami ale moja znajomosc jquery/js jest zbyt slaba:
kod ktory wykonuje walidacje to:
var automaticOnSubmit = field1.form.onsubmit; field1.form.onsubmit = function(){ var valid = automaticOnSubmit(); if(valid)alert('Form is Valid!'); else{ $(".LV_invalid_field:first").focus(); } return false }
A tutaj co ja wymyslilem - ale oczywiscie nie dziala.
$(".ui-tabs-selected").ready(function() { var automaticOnSubmit = $(".ui-tabs-panel:not(.ui-tabs-hide) > form").submit; $(".ui-tabs-panel:not(.ui-tabs-hide) > form").submit = function(){ var valid = automaticOnSubmit(); if(valid)alert('Form is Valid!'); else{ $(".LV_invalid_field:first", document.forms).focus(); } return false } });
pozdrawiam!
Witam.
Wymyslilem!
Dzialajacy przyklad 1:http://webiq.co/livevalidation-ui-tabs/mul...rm-on-tabs.html
Dzialajacy przyklad 2: http://webiq.co/livevalidation-ui-tabs/mul...m-one-page.html
$("form").each(function (i) { var automaticOnSubmit = this.onsubmit; this.onsubmit = function(){ var valid = automaticOnSubmit(); if(valid)alert('Form is Valid!'); else{ $(".LV_invalid_field:first", document.getElementById(this.id)).focus(); } return false } });
pozdrowiam