Это можно сделать (используя в качестве примера jQuery), используя селектор: visible, чтобы увидеть, какие элементы формы являются видимыми, а затем либо сериализовать видимые элементы в форму и отправить ее, либо удалить невидимые.
http://docs.jquery.com/Selectors/visible
http://docs.jquery.com/Selectors
http://docs.jquery.com/Ajax/serialize
http://docs.jquery.com/Ajax
Однако было бы намного проще сделать так, чтобы элементы формы становились пустыми, когда они становились невидимыми, а затем делали их необязательными на стороне сервера.
EDIT
Я не могу представить, чтобы PHP не обрабатывал их, если вы не отправите инструкции тем или иным способом. Все, что имеет имя, будет обработано, кроме флажков, которые отмечены отсутствием значения. Насколько я знаю, у PHP нет возможности сказать, каков был видимый статус поля на стороне клиента при отправке формы.
Возможно, вы могли бы добавить имена отключенных / невидимых полей к дополнительному скрытому полю, объединенному запятыми или чем-то подобным, и построить PHP, чтобы не обрабатывать поля, которые в нем появляются. В противном случае вы можете манипулировать именами полей, чтобы начать с proc_ и noproc_ или чем-то еще, и использовать это как инструкцию, обрабатывать ли поле, но опять же вы просто передаете дополнительные инструкции PHP.