Dit zou al moeten werken als je specifiek verwijst naar de elementen die je dynamisch toevoegt in de aanroep van on(<event>, <element> function(e) {}), als dat je eigenlijke vraag is (hoe hang ik event listeners aan dynamisch toegevoegde elementen / hoe werk ik mijn event listeners bij voor elementen die ik dynamisch toevoeg).
En als je meer van dit soort elementen hebt die dezelfde afhandeling hebben, kun je misschien voor de afhandeling één aparte functie maken, waar je meerdere keren naar verwijst vanuit je on()-aanroepen.
Dit (de constructie met on()) wordt ook wel event delegation genoemd: vanuit een bestaand en niet veranderend element wordt events gekoppeld aan andere (en mogelijk nog niet bestaande) elementen. Waarschijnlijk is het verstandig om de "parent" waar je deze "delegation" aan ophangt zo "nauw" mogelijk te kiezen (denk aan een container waarin al je dynamische zut plaatsvindt) - $(document) is nogal (en waarschijnlijk te) breed.
Welke (wat voor soort) elementen worden dynamisch toegevoegd? Dit zijn vast niet alle forms, zoals je in je on() definitie zet (regel 1, 2e parameter).
Nee wat ik eigenlijk doe, is in mn ExampleController@render_table, een template aanmaken, en deze terug geef als response aan de ajax. Deze table bevat als form element alleen checkboxes in de vorm van een array.
Er worden dus dynamisch checkboxes toegevoegd waar op geacteerd moet worden als er op geklikt wordt? Dan moet je daar je event-listener aan hangen. Niet aan je form.
Checkboxen die niet worden aangevinkt worden sowieso niet gepost.
Je probleem hoeft dus niet per se een jQuery aangelegenheid zijn.
Hoe submit je je uiteindelijke formulier?
Weet je ook zeker dat "$(document).on('change', 'form' ,function ( event ) {" dan niet uitgevoerd wordt, want dat zou verklaren waarom alle mogelijke aangevinkte checkboxen weer gereset worden.
Als het uiteindelijke probleem is dat je aangevinkte checkboxen niet worden verzonden (dit was mij compleet onduidelijk - ik dacht dat het om ingeladen HTML ging die niet reageerde op muisklikken...)... dat probleem zit volgens mij niet in de door jou aangeleverde code-fragmenten, maar ergens anders.
De "json" (die eigenlijk HTML bevat is een tabel met id "free-times", die je eerst verwijdert. Vervolgens voeg je deze html toe (terwijl dit de enige inhoud is?) in de container ".overlay-holder".
Kun je die twee niet gewoon samennemen tot:
$('.overlay-holder').html(json);
Wat ook laat zien hoe vreemd de variabele-naam "json" hier is, gebruik hiervoor in de plaats een neutrale benaming, bijvoorbeeld "data".
Ik post het form naar zijn zelfde route, alleen kan je dit afvagen met Route::get() of Route::post() (Laravel 4.2). Op de post doe ik een dump and die (print_r).
Ik heb de change function op select=players en input=date gezet