Nie przekazuj niewidzialne zawartość po wysłaniu formularza (serializacji) [duplikat]

0

Pytanie

Mam formularz z kilkoma sekcjami, które nie są widoczne (przełącz jQuery) z powodu interakcji z użytkownikiem. Po wysłaniu formularza chciałbym zachować tylko widoczne (wypełnione przez użytkownika) elementy. Nie mogę zmusić go do pracy. Z góry dziękuję!

<!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

Najlepsza odpowiedź

2

Jedna mała zmiana w kodzie sprawia, że jest to możliwe:

$('#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

A co, jeśli chciałbym opublikować w ukrytym polu?
user1725719

Być może źle zrozumiałem twoje pytanie. Myślałem, że chcesz pisać tylko widoczne pola. Czy miałeś na myśli tylko pola publikacji z wartościami (ukryte lub nie ukryte)?
Kinglish

Nie, pan mnie źle zrozumiał. To dodatkowe pytanie. Jak mogę publikować widoczne pola, ale publikować ukryte pola.
user1725719

Tak, jak początkowo złożył wszystkie pola w formularzu, widoczne lub niewidoczne. #form :visible znajdzie tylko widoczne elementy formularza. Można również zrobić coś takiego #form :not(:empty) jeśli chcesz po prostu opublikować dane z danych wejściowych, w których zostały wartości (pomijając puste dane wejściowe)...
Kinglish

W innych językach

Ta strona jest w innych językach

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