JSFiddle - React, Tailwind, and code Playground
by Atsushi Nakatsugawa
HTML
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<form id="form" action="/form" method="POST">
<div class="form-group">
<label for="exampleName">名前</label>
<input name="name" type="text" required />
<small id="nameHelp" class="form-text text-muted">必須</small>
</div>
<div class="form-group">
<label for="exampleName">メールアドレス</label>
<input name="email" type="email" id="email_addr" required />
<small id="emailHelp" class="form-text text-muted">必須</small>
</div>
<div class="form-group">
<label for="exampleName">メールアドレス(確認)</label>
<input name="email_addr_repeat" type="email" id="email_addr_repeat" required />
<small id="emailHelp" class="form-text text-muted">確認入力</small>
</div>
<div class="form-group">
<label for="exampleName">電話番号</label>
<input name="tel" type="tel" id="tel" pattern="[0-9]{2,4}-[0-9]{3,4}-[0-9]{4}" />
<small id="emailHelp" class="form-text text-muted">ハイフンをつけてください</small>
</div>
<p><input type="submit" value="submit" /></p>
</form>
JavaScript
window.onload = function() {
var elem = document.getElementById("form");
elem.addEventListener("submit", function() {
elem.reportValidity();
});
var mail = document.getElementById("email_addr_repeat");
mail.addEventListener("input", function() {
if (this.value != document.getElementById('email_addr').value) {
this.setCustomValidity('確認入力されたメールアドレスが異なります');
} else {
// input is valid -- reset the error message
this.setCustomValidity('');
}
});
};