Ajax等でform要素の値を一括で渡したい場合は下記のようにserializeを利用ことで一括で渡すことができます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>
<form id="f1">
<input type="text" id="txt01" name="txt01" value="txt01"/>
<input type="text" id="txt02" name="txt02" value="txt02"/>
<input type="text" id="txt03" name="txt03" value="txt03"/>
<button type="submit">submit</button>
</form>
<div id="out"></div>
</body>
<script>
$('form').submit(function(event) {
event.preventDefault();
$.ajax('test01.html',
{
type: 'POST',
data: $(this).serialize(),
dataType : 'html'
})
// Ajaxリクエストが成功した場合
.done(function(data){
alert(data);
})
// Ajaxリクエストが失敗した場合
.fail(function(Request, Status, error){
alert(error);
});
});
</script>
</html>
注)input要素にはname属性が付けないとシリアライズされません。
【動作確認環境】
OS:Windows11 Pro 21H2
Visual Studio Code:1.64.2
Chrome:101.0.4951.54