Jak odelat běžný formulář javascriptem bez použití submit button?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
webman
Člen | 15
+
0
-

má klasický neajaxový formulář

<?php
// ... v továrničce
    public function create($id_name=NULL)
    {
	  $form = $this->factory->create();
      $form->addText('neco', 'Zadej něco:');
      $form->addSelect('vyber', 'Vyber neco:',$moznosti);
      $form->addHidden('mujhidden','mojedata');
	  return $form;
	}
?>

v latte vloženej klasický a za ním 2 buttony

{control new2Form}
//tady bude ještě nějaká ajaxová komponenta
<br>
        <button type="button" class="btn btn-lg btn-primary" id="prevbtn">Předchozí</button>
        <button type="button" class="btn btn-lg btn-warning" id="nextbtn">Další</button>
<br><br>
<script>
$("#nextbtn").on( "click",function (e) {
//tady bude ještě nějaký kód
	$('#moveto')–>val('next');
	$('#frm-new2Form')->submit();
});
$("#prevbtn").on( "click",function (e) {
//tady bude ještě nějaký kód
	$('#moveto')->val('prev');
	$('#frm-new2Form')->submit();
});
</script>

to nefunguje

no a v javacriptu se snažím ho odeslat

<script>
$("#nextbtn").on( "click",function (e) {
//tady bude ještě nějaký kód
	$('#moveto')->val('next');
	$('#frm-new2Form')->trigger('submit');
});
$("#prevbtn").on( "click",function (e) {
//tady bude ještě nějaký kód
	$('#moveto')->val('prev');
	$('#frm-new2Form')->trigger('submit');
});
</script>

a tohle taky nefunguje

Takže otázka zní, jak spustit odesílání formuláře (vč. nette validace), aniž bych muset mít odesílací button ve formuláři. Potřebuji na stránce vykonat víc věcí v javascriptu než ten formulář začnu odesílat a součástí formuláře ten button být taky nemůže.

Editoval webman (1. 4. 2017 7:43)

CZechBoY
Člen | 3608
+
0
-

Jak jinak chces formular odeslat nez tlacitkem? Nette z podstaty veci potrebuje tlacitko ve formu (ikdyby si ho mel schovat pres css).

webman
Člen | 15
+
0
-

No zajímalo mě jestli nejde ten event, kterej dela obsluhu clicku na submit button zavolat přímo javascriptem.

webman
Člen | 15
+
0
-
	<style type="text/css">
	<!--
	.hidden{
	visibility: hidden;
	}
	-->
	</style>
$form->addSubmit('send')->setOption('id', 'formsend')->setAttribute('class', 'hidden');
<script type="text/javascript">
$("#nextbtn").on( "click",function (e) {
	$('#moveto').val('next');
	$('#formsend').trigger('click');
});
$("#prevbtn").on( "click",function (e) {
	$('#moveto').val('prev');
	$('#formsend').trigger('click');
});
</script>

taky nefunguje

Editoval webman (30. 3. 2017 14:31)

webman
Člen | 15
+
0
-

Tak se omlouvám.

$('#frm-new2Form').submit();

funguje

vypadá to že jsem měl dětinskou chybu v kódu

$('#frm-new2Form')–>submit();