Не передавайте невидимое содержимое после отправки формы (сериализации) [дублировать]

0

Вопрос

У меня есть форма с несколькими разделами, которые не видны (переключить jQuery) из-за взаимодействия с пользователем. После отправки формы я хотел бы сохранить только видимые (заполненные пользователем) элементы. Не могу заставить его работать. Заранее спасибо!

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $('#content').text($('#myform').serialize());
    });
});
</script>
</head>
<body>

<form action="" id="myform">
  First name: <input type="text" name="FirstName" value="Mickey"><br>
  Last name: <input type="text" name="LastName" value="Mouse"><br>
  <div style="display:none;"><input type="text" name="isthishidden" value="maybe"></div>
 <input type="hidden" name="action" value="verwerk">
</form>
<button>Serialize form values</button>
<p></p>
<div id="content"></div>

</body>
</html>
forms html javascript jquery
2021-11-23 20:08:53
1

Лучший ответ

2

Одно небольшое изменение в вашем коде делает это возможным:

$('#content').text($('#myform :visible').serialize());

$(document).ready(function(){
  $("button").click(function(){
    $('#content').text($('#myform :visible').serialize());
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<form action="" id="myform">
  First name: <input type="text" name="FirstName" value="Mickey"><br>
  Last name: <input type="text" name="LastName" value="Mouse"><br>
  <div style="display:none;"><input type="text" name="isthishidden" value="maybe"></div>
 <input type="hidden" name="action" value="verwerk">
</form>
<button>Serialize form values</button>
<p></p>
<div id="content"></div>

2021-11-23 20:20:39

А что, если я хотел бы опубликовать скрытое поле?
user1725719

Может быть, я неправильно понял ваш вопрос. Я думал, вы хотите размещать только видимые поля. Или вы имели в виду только поля публикации со значениями (скрытыми или не скрытыми)?
Kinglish

Нет, вы меня правильно поняли. Это дополнительный вопрос. Как я могу публиковать видимые поля, но публиковать скрытые поля.
user1725719

Так, как вы изначально разместили все поля в форме, видимые или невидимые. #form :visible находит только видимые элементы формы. Вы также могли бы сделать что-то вроде #form :not(:empty) если вы хотите просто опубликовать данные из входных данных, в которых были значения (игнорируя пустые входные данные)...
Kinglish

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................