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
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)
- webman
- Člen | 15
<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)