Witam, poszukuję rozwiązania problemu, a mianowicie:
Mam formularz podzielony na odpowiednie kroki. Po wypełnieniu danego kroku i kliknięciu dalej, zostaje przeprowadzona validacja(Jquery - Ajax). Również, po kliknięciu w dany input zostaje przeprowadzona validacja, tej jednej kontrolki. Validacja polega na dodaniu nowego diva z informacją o błędzie. Gdy błąd zostanie naprawiony, div z błędem zostaje usunięty. Formularz powinien działać w ten sposób, że po kliknięciu w przycisk dalej i wykonaniu validacji, ma zostać sprawdzone, czy wszystkie pola nie posiadają błędu. Jeśli nie posiadają wtedy ten krok, ma otrzymać display:none, a pojawić ma się krok drugi. Problem polega na tym, że nie wiem jak wykonać walidację i jednocześnie sprawdzenie czy wszystkie inputy są poprawne a następnie przejście do następnego kroku. Dane są przesyłane jsonem.
kod:
public function validateformAction()
{
$this->_helper->viewRenderer->setNoRender();
$this->_helper->getHelper('layout')->disableLayout();
$f = new Application_Form_Register();
$f->isValid($this->_getAllParams());
$json = $f->getMessages();
header('Content-type: application/json');
echo Zend_Json::encode($json);
}
$(document).on('ready', function(){
$("input").blur(function()
{
var formElementId = $(this).data('validate');
doValidation(formElementId);
});
$("#first").on('click', function() {
$('input').each(function()
{
doValidation($(this).data('validate'));
});
});
function doValidation(id)
{
var url = 'tutaj jest url'
var data = {};
$("input").each(function()
{
data[$(this).data('validate')] = $(this).val();
});
$.post(
url,
data,
function(resp)
{
$("#"+id).parent().find('.errors').remove();
$("#"+id).parent().append(getErrorHtml(resp[id], id));
}
,'json');
}
function getErrorHtml(formErrors , id)
{
var o = '<ul id="errors-'+id+'" class="errors">';
for(errorKey in formErrors)
{
o += '<li class="error">' + formErrors[errorKey] + '</li>';
error =true;
}
o += '</ul>';
return o;
}
Pracuję nad frameworku Zend. I do walidacji używam funkcji zenda.
Proszę o pomoc, jeśli ktoś jest w stanie mi pomóc.