2015-08-11 2 views
2

Я хочу сериализовать форму таким образом, чтобы она исключала элементы из определенного родителя. напримерСериализовать форму, исключая определенный класс

<form> 
    <input type="text" name="myText" /> 
    <input type="hidden" name="myHidden" /> 
    <div class="ng-hide"> 
     <input type="text" name="insideText" /> 
    </div> 
</form> 

код расслоение плотного:

$('form').serialize(); // it will serialize all elements 

Я хочу сериализацию формы и весь элемент за исключением родителя div.ng-hide. Off перед подачей я могу удалить его, как $('.ng-hide').remove(), но нуждается в некотором лучшем решении.

Примечание: пример уменьшенная версия, там может быть 3-4 нг скрыть DIV и внутри каждого там может быть 10+ элементы -

+0

'$ ('форма ввода')' ??? –

ответ

0

Вы можете сделать, как показано ниже:

var serializedReturn = $('input[name!=insideText]', this).serialize(); 

Или чтобы быть лучшим способом

$('form').find('input[name!=insideText]').serialize(); 

или избежать целого div

$('form').not('.ng-hide').serialize(); 
+0

Пример мини-версии, может быть 3-4 ng-hide div и внутри каждого может быть 10+ элементов – FarazShuja

+0

Итак, вы можете попробовать последний подход! –

+0

$ ('form'). Not ('ng-hide') отфильтровывает формы, имеющие класс ng-hide – FarazShuja

0

Попробуйте это:

$('form:not(.ng-hide) > :input').serialize(); 

DEMO

Смежные вопросы