Получить все входные данные формы, которые не находятся в определенном 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();