I need to trigger a form submit event when any form value changes and all the fields in the form are filled. Everything in this works apart from the $('#date_filter_form').submit(); line. I can .hide() the form but can’t submit() it for some reason. Documentation says submit() is the same as trigger(‘submit’) so I can’t figure out why it wouldn’t be working.
$('#date_filter_form input[type="text"]').change(function() {
var from_val = $('#date_filter_form #from_date').val();
var to_val = $('#date_filter_form #to_date').val();
if(from_val != '' && to_val != '') {
$('#date_filter_form').submit();
}
});
HTML:
<form method="post" id="date_filter_form" name="date_filter_form" action="">
<label class="left required" for="from_date">From</label>
<input type="text" id="from_date" class="datepicker hasDatepicker" value="" name="from_date">
<label class="left required" for="to_date">to</label>
<input type="text" id="to_date" class="datepicker hasDatepicker" value="" name="to_date">
<input type="hidden" value="" name="from_date_db">
<input type="hidden" value="" name="to_date_db">
<input type="submit" id="submit" class="button" value="Show results" name="submit">
</form>
Your
submitbutton is named'submit', and it clashes with theform.submitmethod.This happens because browsers provide shortcut accessors to form elements, properties that refer to the elements, are bound to the
formelement, using thenameattribute as the property name.An element named
submitwill replace theform.submitmethod, you should simply change name.Also keep in mind that in IE you will have the same problems with the
idattribute.See also: