Skocz do zawartości

proste validate w samym jquery bez pluginu validate


Eldoka

Rekomendowane odpowiedzi

witam,

mam taki kod jquery:

    $(document).ready(function(){
	    $('#dodaj').bind('submit', function(){
	    var valid = true;

	    $(':input', this).each(function(){
		    if($(this).val()==''){
			    $(this).addClass('form_invalid');
			    valid = false;
		    }else{
			    $(this).removeClass('form_invalid');
		    }
	    });

	    if(!valid){
		    alert('Wypełnij wszystkie pola!');
		    return false;
	    }

    });
   }); 

Działa poprawie do wszystkich pół w formularzu (dodaje do input klasę form_invalid jeśli pole jest puste) oprócz takiego:

<input class="hover-star" type="radio" name="rating" value="1" title="Very poor"/>
<input class="hover-star" type="radio" name="rating" value="2" title="Poor"/>
<input class="hover-star" type="radio" name="rating" value="3" title="OK"/>
<input class="hover-star" type="radio" name="rating" value="4" title="Good"/>
<input class="hover-star" type="radio" name="rating" value="5" title="Very Good"/>
<span id="hover-test" style="margin:0 0 0 20px;"></span>

Co poradzicie? Próbowałem zmodyfikować ifa w poniższy sposób, ale skrypt przestał w ogóle działać:

if($(this).val()=='' || $(hover-star:input).val())

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

type="radio" nie jest tym samym co type="text", trzeba by napisać funkcję sprawdzającą dla type="radio"

coś na zasadzie -> błąd jeżeli żaden type="radio" nie jest zaznaczony

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli chodzi o sprawdzenie tylko tych podanych radio buttonów to proponowałbym coś w tym stylu:


var radio_val = $('input[name="rating"]').val();
if (typeof radio_val == 'undefined') {

        $(this).addClass('form_invalid');
        valid = false;

} else {
        $(this).removeClass('form_invalid');

}

lub alternatywnie


var radio_val = $('input[name="rating"]:checked').length;
if (radio_val==0) {
        $(this).addClass('form_invalid');
        valid = false;
} else {
        $(this).removeClass('form_invalid');
}

Nie sprawdzałem czy to działa, ale któreś (najprawdopodobniej oba) powinny działać dobrze, chyba, że gdzieś jakąś literówkę zrobiłem :P

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Racja, ale jak już masz załączoną bibliotekę jquery, to można na podstawie tego frameworka zrobić.

Ja to zrobiłem bez dodatkowej biblioteki validate.

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności