Когда мне нужно было выполнить ajax-вызов со всеми полями формы, у меня возникли проблемы с селектором : input , возвращающим все флажки независимо от того, были ли они отмечены. Я добавил новый селектор, чтобы просто получить отправляемые элементы формы:
$.extend($.expr[':'],{
submitable: function(a){
if($(a).is(':checkbox:not(:checked)'))
{
return false;
}
else if($(a).is(':input'))
{
return true;
}
else
{
return false;
}
}
});
использование:
$('#form_id :submitable');
Я пока не тестировал его с несколькими полями выбора, но он работает для получения всех полей формы так, как это делает стандартная отправка.
Я использовал это при настройке параметров продукта на сайте OpenCart, чтобы включить флажки и текстовые поля, а также стандартный тип блока выбора.