formのvalidationをするためのBest Practiceを探しています。
是非いいアイデアがあれば教えてください。
フォームの中に複数のinput要素等があって、それぞれのvalidationを行う必要がある場面というの多々あると思います。
しかも一つのページに複数のformがある場合などは、validationは関数化する方がいいと思割れますので、いつも私は下記のような手法を取っています。その際に、少しつまづいた点があるのでメモを残します。
フォーム内に位置する複数のinputのうち、一つでも空欄があれば送信しないという単純な仕組みです。
<form>
<input class="aaa">
<input class="bbb">
</form>
<script>
$('form').submit(function(){
return validate();
});
function validate(){
let flag;
const val1 = $(".aaa").val() ? 1 : 0 ;
const val2 = $(".bbb").val() ? 1 : 0 ;
flag = val1 * val2
return flag;
}
</script>
このように、掛け算の中に1つでも0が含まれていると、答えは必ず0になるという性質を利用して、validationを行っています。
そして、0がfalseと評価されることから、そのままflagを返り値にすれば、入力エラーがあればsubmitされず止まると思ってたのですが、、、ダメでした。
retun falseとしないとダメみたいですね。
validate() ? true : false;
これならうまく行きました。
みなさん入力値のvalidationはどうされているのでしょうか?