Aktivace AJAX pro formular + vypnuti validace

M4RtY89
Člen | 7
+
0
-

Zdravim,
testuju praci s AJAX formularem a pouzivam knihovnu nette.ajax.js. S ni jsem prozatim spokojeny, a 99% prace s AJAXem binduju pres js (nikoliv pres ajax classu). Pro formular mam vytvorenou vlastni komponentu, kde bezi cela logika – try catch blok – bez ajaxu to funguje.

$.nette.ajax({
    'url': {link handlerLink!},
    'data': data
});

Rad bych se zeptal na dve veci, ktere za boha nemohu nikde dohledat:

  1. Jak vypnu JS validaci formulare ($form->setRequired) – chci to vypisovat jako ($form->error) a na to mam snippet
  2. Jak mohu nabindovat AJAX pres JS a nikdoliv pridani tridy „ajax“?

Kdyz mam neco takoveho, tak mi formular nechce fungovat:

$("#frm-testForm").submit(function(e) {
    $.nette.ajax({
        'type': 'POST'
        'url': $(this).attr('action'),
    });

    e.preventDefault();
});

jeremy
Člen | 50
+
0
-

Co se tyce vypnuti validace, predpokladam ze mas na mysli zakladni html validace. To se da vypnout pridanim novalidate="novalidate" atributu do formulare. $form->addHtmlAttribute('novalidate', 'novalidate')

M4RtY89
Člen | 7
+
0
-

Ne, tento parametr tam mam davno, toto akorat vypne validaci na strane prohlizece, ja chci vypnout validaci na strane serveru, tak jak se s tim pere nette, jak jsem zminil (setRequired parametr).

$form->addText('textName', 'name')->setRequired('Please, insert the value.');

Tady je priklad te hlasky, pokud zapnu ajax pres tu classu, tak mi to vraci alerty s touto hlaskou, a to bych rad vypnoul protoze to vracim pres $form->error

FilipH
Člen | 6
+
0
-

Podle tohoto by mohlo stačit přidat do atributu formuláře data-ajax-validate='{"form":false}'.

Nebo:

$("#frm-testForm").submit(function(e) {
    $.nette.ajax({
        type: 'POST'
        url: $(this).attr('action'),
		validate: { form: false }
    });

    e.preventDefault();
});

Podobně „historické“ knihovně bych se ovšem raději vyhnul širokým obloukem, je-li možno. Ušetříš si dost překvapení.