2013-05-29 16 views
5

Zajęło mi to wystarczająco dużo czasu, aby dowiedzieć się, że wtyczka walidacji formularzy JQuery działa tylko w polach z atrybutem "nazwa".Działanie wtyczki walidacji Jquery działa na wejściach bez atrybutu nazwy

W każdym razie używam go do wypełnienia wszystkich wymaganych pól.

Moim problemem jest to, że w pewnym momencie, mam jedno wejście tekstu

<div id='choices'> 
    <input type='text' /> 
</div> 
<a href='#' id='add-choice' >Add input </a> 

użytkownik może dodać dowolną liczbę wejść tekstowych, jak chce:

$("#add-choice").live("click",function(){ 
        $("#choices").append("<input type='text' /><br>"); 
}); 

I chcę te nowe pola do być również wymagane. Nawet jeśli podam nazwę pierwszego wejścia. Co powinienem zrobić, aby nowe dane wejściowe były dodawane dynamicznie?

Czy istnieje sposób na użycie wtyczki bez użycia nazwy attr, czy istnieje inne rozwiązanie?

+0

[tag: jquery-validation-engine] to zupełnie inna wtyczka. Zmieniono tagi. – Sparky

Odpowiedz

1

Co należy zrobić w przypadku nowych wejść dodanych dynamicznie?

Daj im nazwę, dowolną nazwę

Czy istnieje sposób używać wtyczki bez użycia nazwę attr?

nr

Czy istnieje inne rozwiązanie?

To zależy od tego, co robisz z polami - wyraźnie nie potrzebujesz nazwy na żadną inną przyczynę, niż sprawdzenie poprawności pracy jQuery, więc dlaczego nie wymyślisz nazwy i nie zadzwonisz to wszystko?

korekcyjne - potrzeba unikalne nazwy zobaczyć komentarze

var i = 0; 
$("#add-choice").live("click",function(){ 
$("#choices").append("<input type='text' name='bob" + i + "' class='required'/><br>"); 
i = i + 1; 
}); 
+1

Nie będzie także działać, jeśli wszystkie pola mają tę samą "nazwę". – Sparky

+0

dzięki za to @Sparky, poprawiłem moją odpowiedź –

+0

dziękuję wam obu, to obejście, którego szukałem. –

1

Cytat OP:

„Czy istnieje sposób używać wtyczki bez użycia nazwę attr”

Nie, nie można korzystać z wtyczki jQuery Weryfikuj jeśli nie masz name atrybuty na wszystkich twoich polach.

As per documentation:

zalecenia znaczników

Atrybut name '' 'jest wymagane' '' dla elementów wejściowych, wtyczka walidacja nie działa bez niego.

W „obejście” ma mieć jQuery utworzyć nazwę wyjątkowy gdy tworzy nowy wkład.

1

Tak można to zrobić, ale z ograniczeniami

Ograniczenie: Nie będzie miał możliwość zmiany wiadomości podczas korzystania z różnych zasad.

<form ="validationForm"> 
<input type="text" class="required" title="required message" /> 
</form> 

jQuery("#validationForm").validate(); 
Powiązane problemy