Formularz jquery - problem


(Piksel 2) #1

$('.btn-submit').click(function(e){

var $formId = $(this).parents('form');

var formAction = $formId.attr('action');

var emailReg = /^([\w-.]+@([\w-]+.)+[\w-]{2,4})?$/;

var $error = $('');

var nazwa_uzReg = /^([a-z0-9_-]{6,16})?$/;

$('li',$formId).removeClass('error');

$('span.error').remove();

// Validate all inputs with the class "required"

$('.required',$formId).each(function(){

var inputVal = $(this).val();

var $parentTag = $(this).parent();

if(inputVal == ''){

$parentTag.addClass('error').append($error.clone().text('Uzupełnij pole'));

}

if($(this).hasClass('nazwa_uz') == true){

var nazwa_uz = $('#nazwa_uz').val();

if(!nazwa_uzReg.test(inputVal)){

$parentTag.addClass('error').append($error.clone().text('6-16znakow'));}}

// Run the email validation using the regex for those input items also having class "email"

if($(this).hasClass('email') == true){

if(!emailReg.test(inputVal)){

$parentTag.addClass('error').append($error.clone().text('Niepoprawny e-mail'));

}

}

// Check passwords match for inputs with class "password"

if($(this).hasClass('password') == true){

var password1 = $('#password-1').val();

var password2 = $('#password-2').val();

if(password1 != password2){

$parentTag.addClass('error').append($error.clone().text('Hasla musza byc zgodne'));

}

}

});

if ($('span.error').length > 0) {

$('span.error').each(function(){

// Set the distance for the error animation

var distance = 5;

// Get the error dimensions

var width = $(this).outerWidth();

// Calculate starting position

var start = width + distance;

// Set the initial CSS

$(this).show().css({

display: 'block',

opacity: 0,

right: -start+'px'

})

// Animate the error message

.animate({

right: -width+'px',

opacity: 1

}, 'slow');

});

} else {

$formId.submit();

}

// Prevent form submission

e.preventDefault();

});

$("#nazwa_uz").change(function()

{

var $parentTag = $(this).parent();

var msgbox = $("#status");

var email = $("#email").val();

var nazwa_uz = $("#nazwa_uz").val();

if(nazwa_uz.length > 5)

{

$("#status").html(' Sprawdzanie dostępności.');

$.ajax({

type: "POST",

url: "check.php",

data: "nazwa_uz="+ nazwa_uz,

success: function(msg){

$("#status").ajaxComplete(function(event, request){

if(msg == 'OK')

{

msgbox.html(' Dostępny');

}

else

{

msgbox.html(msg);

$('#submit').attr("disabled", "true");

}

});

}

});

}

else

{

$("#status").html('Za mało znaków');

e.preventDefault();

}

return false;

});

});

Po kliknięciu submita skrypt sprawdza wszystkie pola. Jeżeli jest za mało znaków, czy niezgadzające się hasła to wyświetli się błąd. Natomiast nie wiem jak zrobić aby w przypadku zajętego loginu wyświetlał się taki sam format błędu czyli $parentTag.addClass('error').append($error.clone().text('zajęty'));

... w taki sposób niestety nie działa poprawnie:

$("#status").ajaxComplete(function(event, request){

if(msg == 'OK')

{

msgbox.html(' Dostępny');

$parentTag.addClass('error').append($error.clone().text('Zajęty'));

}

}

ba76cf65a3d4b7c16eecc13ed4e.jpg


(Grzesie K) #2
  1. Używaj BB-Code [code /]

  2. http://api.jquery.com/jQuery.get/


(Piksel 2) #3

Dzięki za wskazówkę jednak to nie rozwiązuje mojego problemu ;(


(Grzesie K) #4

Wysyłasz dane za pomocą $.post/$.get do skryptu php który sprawdza dostępność danej danego nicku i zwraca wynik. Na podstawie wyniku wyświetlasz stosowny komunikat.


(slepciu) #5

Tutaj masz artykuły na temat przesyłania danych za pomocą jQuery do PHP i odwrotnie