public function serializeArray($submit = null)
{
$source = $this->filter('form, input, select, textarea')->find('input, select, textarea')->andSelf()->not('form');
$return = array();
// $source->dumpDie();
foreach ($source as $input) {
$input = phpQuery::pq($input);
if ($input->is('[disabled]')) {
continue;
}
if (!$input->is('[name]')) {
continue;
}
if ($input->is('[type=checkbox]') && !$input->is('[checked]')) {
continue;
}
// jquery diff
if ($submit && $input->is('[type=submit]')) {
if ($submit instanceof DOMELEMENT && !$input->elements[0]->isSameNode($submit)) {
continue;
} elseif (is_string($submit) && $input->attr('name') != $submit) {
continue;
}
}
$return[] = array('name' => $input->attr('name'), 'value' => $input->val());
}
return $return;
}