折り返しの連絡フォーム
radio ボタンの value の値を取得するには、以下のコードで取得できます。
document.querySelector('input[name="time"]:checked')?.value; <input type="date">の値を取得すると「 yyyy-mm-dd 」の形式で値を取得します。
値をリセットしたい場合は、以下のようにします。
document.getElementById('data').value = ''; コード
HTML
<!DOCTYPE html>
<html lang="js">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="/javascripts/callback.js"></script>
<link rel="stylesheet" href="/css/callback.css">
<title>Document</title>
</head>
<body>
<h1>CallBack</h1>
<form action="">
<p>連絡先氏名:<input type="text" id="name"></p>
<p>連絡先電話番号:<input type="tel" name="" id="tel"></p>
<div>
<p>
<label><input type="radio" name="time" value="earliest" checked>最短</label>
<label><input type="radio" name="time" value="arrange">日時指定</label>
</p>
<p id="data-area" class="hidden">指定日時<input type="date" name="" id="data"></p>
</div>
<p>備考:
<textarea name="" id="remarks"></textarea>
</p>
<p><button id="btn" type="button">button</button></p>
</form>
<div>
<textarea id="output" rows="20" cols="40"></textarea>
</div>
</body>
</html> callback.js
function dateTimeFormat(date){
let time = new Date(date);
let year = time.getFullYear();
let month = time.getMonth() + 1;
let day = time.getDate();
let datetime_format = year + "/" + month + "/" + day;
return datetime_format;
}
window.addEventListener('DOMContentLoaded', function(){
const btn = document.getElementById('btn');
const name = document.getElementById('name');
const tel = document.getElementById('tel');
const remarks = document.getElementById('remarks');
let checkedValue = document.querySelector('input[name="time"]:checked')?.value;
let date_value = ""
try {
if(checkedValue == "earliest"){
date_value = "最短"
} else {
throw new Error("エラーが発生しました");
}
} catch(e){
console.log("キャッチしたエラー:", e.message);
}
const radios = document.querySelectorAll('input[name="time"]');
radios.forEach(radio => {
radio.addEventListener('change', () => {
checkedValue = document.querySelector('input[name="time"]:checked')?.value;
if(checkedValue == "earliest"){
document.getElementById('data-area').classList.add('hidden');
document.getElementById('data').value = '';
date_value = "最短";
} else if(checkedValue == "arrange"){
document.getElementById('data-area').classList.remove('hidden');
}
});
});
btn.addEventListener('click', function(){
const name_value = name.value;
const tel_value = tel.value;
const remarks_value = remarks.value;
if(checkedValue == "arrange"){
date_value = dateTimeFormat(document.getElementById('data').value);
}
let text =`連絡先氏名:${name_value}
連絡先電話番号:${tel_value}
連絡日:${date_value}
備考:${remarks_value}`
document.getElementById('output').innerHTML = text;
})
}) callback.css
.hidden {
display: none;
}