in Rails 3.2 i am trying to submit a form that has a select filed which was previously added to this form with ajax. Like this:
First form (has :remote => true
) responds with js.erb that (among others) renders a select field inside another form like this (select field is in the partial):
$('#target_variables_div').html("<%= j render(:partial => 'logged_data/select_vars', :locals => { :vars => @vars, :date => @date }) %>")
This "another" form (also has :remote => true
) has more form fields but these are loaded statically on page load.
The problem is that when I submit this "another" form, it sends only the static params, excluding the select field previously loaded with the partial.
I know it has something to do with jQuery live
or on
but I am still not able to submit the complete form ...
Thanks for any help!
Jquery live
and on
methods are for listening for newly added dom
elements on your page, such as a button that do not exist on first load, but is added dinamically and needs to have an event attached to it like:
$('#dinamyc_button').on('click', function() {});
In your case, i believe you will have to set the select value manually. Try to create a listener to your form, that on submit will append the select value to your data to be passed to the server:
$('#your_form').submit(function() {
var formData = $(this).serialize();
var selectValue = $('#your_select').val();
formData['select'] = selectValue; // or formData.select = selectValue;
$.ajax({
type: 'POST',
url: whatever,
data: formData
})
});
This is just a not polished example, but you got the idea.