imaginar/views/createIsotope.ejs
2024-10-19 20:24:54 +09:00

79 lines
3.2 KiB
Plaintext

<head>
<link rel="stylesheet" href="/styles/form.css">
</head>
<div class="bot-creation-container">
<h1>同位体情報の登録</h1>
<p class="required-note">* 必須の情報です</p>
<form id="botForm" action="/contract" method="POST" class="bot-creation-form">
<label for="name">同位体の選択 <span class="required">*</span></label>
<select id="name" name="name" required>
<option value="" disabled selected>同位体を選んでください</option>
<option value="カフ">カフ</option>
<option value="セカイ">セカイ</option>
<option value="リメ">リメ</option>
<option value="ココ">ココ</option>
<option value="ハル">ハル</option>
</select><br>
<label for="firstPerson">一人称 <span class="required">*</span></label>
<input type="text" id="firstPerson" name="firstPerson" placeholder="" required><br>
<label for="personality">性格</label>
<input type="text" id="personality" name="personality" placeholder=""><br>
<label for="tone">口調</label>
<input type="text" id="tone" name="tone" placeholder=""><br>
<label for="backgroundStory">バックグラウンドストーリー</label>
<textarea id="backgroundStory" name="backgroundStory" placeholder=""></textarea><br>
<label for="likes">好きなもの</label>
<input type="text" id="likes" name="likes" placeholder=""><br>
<label for="dislikes">嫌いなもの</label>
<input type="text" id="dislikes" name="dislikes" placeholder=""><br>
<button type="submit" class="submit-btn" disabled>登録</button>
<p id="error-message" style="color: red; display: none;">必要な項目を正しく入力してください。</p>
</form>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() {
const botForm = document.getElementById('botForm');
const nameSelect = document.getElementById('name');
const firstPersonInput = document.getElementById('firstPerson');
const submitBtn = botForm.querySelector('.submit-btn');
const errorMessage = document.getElementById('error-message');
// 指定された名前のみ許可
const validNames = ['カフ', 'セカイ', 'リメ', 'ココ', 'ハル'];
function validateForm() {
const selectedName = nameSelect.value;
const firstPersonValue = firstPersonInput.value.trim();
// 名前が指定された5つの中にあるかチェックし、一人称が入力されているか
if (validNames.includes(selectedName) && firstPersonValue !== '') {
submitBtn.disabled = false;
errorMessage.style.display = 'none'; // エラーメッセージを非表示
} else {
submitBtn.disabled = true;
}
}
// 登録ボタンが無効な時のクリックイベント
submitBtn.addEventListener('click', function(event) {
if (submitBtn.disabled) {
event.preventDefault();
errorMessage.style.display = 'block'; // エラーメッセージを表示
}
});
// 各入力フィールドでのイベントリスナー
nameSelect.addEventListener('change', validateForm);
firstPersonInput.addEventListener('input', validateForm);
});
</script>