1つのページに4つのフォームがあり、それらすべてに1つのパスワード検証機能を割り当てたいです。現在のパスワードフィールドのIDを取得し、さらに検証を行いたい。
次のように、現在の入力パスワードフィールドのIDを取得します。
var id = $(this).attr('id');
今、私は三元
if
を使用したいIDを確認し、変数に値を割り当てます。例えば:
var a
if id==1
a= "a";
else if id==2
a= "b";
else if id==3
a = "c"
else if id==4
a = "d"
どんな助けも大歓迎です。
回答 3 件
本当に三項演算子を使用したい場合:
var id = $(this).attr('id'); var a = (id==1) ? "a" : (id==2) ? "b" : (id==3) ? "c" : (id==4) ? "d" : undefined;
ただし、同じ変数を
switch
を使用してそのような比較をいくつか行う必要がある場合 より良い選択でしょう:var a; switch ($(this).attr('id')) { case 1: a = "a"; break; case 2: a = "b"; break; case 3: a = "c"; break; case 4: a = "d"; break; }
idの値が実際に連続した数値である場合、代わりに配列を使用することもできます。
var id = $(this).attr('id'); var a = [, "a", "b", "c", "d"][+id];
var something = ["a", "b", "c", "ddddd"]; $("form").on("submit", function(evt) { evt.preventDefault(); var $password = $(this).find("[name='password']"); var bla = something[ +$password[0].id - 1 ]; // -1 since it's index (0) based console.log(bla) });
<form> <input id="1" type="password" name="password" placeholder="Password"> <input type="submit"> </form> <form> <input id="3" type="password" name="password" placeholder="Password"> <input type="submit"> </form> <script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
三項演算子によって、あなたはこれを参照しています:
オブジェクトまたは
switch
を使用すると思います より明確にする必要があります。例えば:
switch
を使用する 声明。