Получить все входные данные формы, которые не находятся в определенном div

У меня есть такая форма

<form action="" method="post">
<div>
    <input type="text" name="input1" value="">
    <select name="my_list">
        <option value="1">1</option>
        <option value="2">2</option> 
    </select>
    <textarea name="details"></textarea>
</div>
<div class="excluded">
    <input type="text" name="input2" value="">
    <input type="text" name="input2" value="">
    <input type="text" name="input3" value="">
    <textarea name="details2"></textarea>
</div>
</form>

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

Я попробовал что-то вроде этого, но это не сработало:

$('form').find(':input').not('.excluded').serialize();

Кто-нибудь знает, как я могу получить все входные данные формы, которые не находятся внутри div с исключением класса, пожалуйста?

Спасибо

3 ответа

Используйте CSS: не

$('form div:not(.excluded) input').serialize();

alert($('form div:not(.excluded) input').length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="post">
<div>
    <input type="text" name="input1" value="">
    <select name="my_list">
        <option value="1">1</option>
        <option value="2">2</option> 
    </select>
    <textarea name="details"></textarea>
</div>
<div class="excluded">
    <input type="text" name="input2" value="">
    <input type="text" name="input2" value="">
    <input type="text" name="input3" value="">
    <textarea name="details2"></textarea>
</div>
</form>

В not() вы должны использовать .excluded :input вместо .excluded,

$('form :input').not('.excluded :input').serialize();

Первый фильтр на основе div затем получить все входные данные отфильтрованного результата что-то вроде

$('form').find("div").not('.excluded').find(':input').serialize();
Другие вопросы по тегам