0
0

return 0はreturn falseではない?

Posted at

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はどうされているのでしょうか?

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0