2016-05-27 9 views
1

現在、フォームを検証し、入力ボックスが空でないことを確認しています。これを行うには、私は以下に定義されたapp.validation.empty()メソッドを使用しています。私のifの声明には、多くの繰り返しがあります。どのようにすれば、次のようにして多くを減らす||演算子を1つのステートメントに変更する

if(!app.validation.empty(contestName) || !app.validation.empty(date) ||!app.validation.empty(month) ||!app.validation.empty(year) || !app.validation.empty(countryName) || !app.validation.empty(userName) || !app.validation.empty(userLastName)) 

に1つの方法で記述することができますか?

+0

もう1つのステートメントだけですか? – Bergi

答えて

2

を回避することができ、最新のブラウザでES6 arrow function

if ([contestName, date, month, year, countryName, userName, userLastName].some((v) => !app.validation.empty(v))) 

some()を使用することができます。

if (![contestName, date, month, year, countryName, userName, userLastName] 
    .every(app.validation.empty)) { 
+1

ラブリー!ありがとう! –

1

あなたは、あなたも、あなたがArray#everyでコールバックとしてapp.validation.empty使用できる変数

app.sendForm = { 
    init: function(){  
     $("#entry").submit(function(event) { 
      if(if (["#email","#first_name","#last_name","#birth_day","#birth_month","#birth_year","#contest1_name","#country",'#privacy_check'].some((v) => !app.validation.empty($(v))))){ 
       event.preventDefault(); 
       alert("There are errors with your form."); 
      } else { 
       alert("You have entered the competition."); 
      }  
     }); 
    } 
}; 
+2

多くの変数を削除し、idを配列に入れたいと考えるかもしれません。 – Bergi

+0

@Bergiは私またはPranavに向けられたこのコメントですか? –

+0

@phantomあなたのいずれか:-) – Bergi

関連する問題