2016-04-07 8 views
0

私は送信する前にフォームを検証するコードを持っています。これは初めてのコードですが、これは初めてのboostrapです。条件は逆さまに評価されます

条件が最後から最初に評価されていることに気づいたのは初めてのことです。空のフォームを投稿しようとすると、最後のフィールドにエラーが発生します。そのエラーを一度修正すると、それは前のものに移動します。

マイJS:

$('#submit').click(function(e){ 
    e.preventDefault(); 
    var tipo = <?php echo $tipo; ?>; 
    var error = 0; 
    if ($('#screen_name').val()=='') { 
     $('#message').removeClass().addClass('text-danger').html("<strong><?php echo _("Inserisci il nome della schermata per proseguire."); ?></strong>").fadeTo(900,1); 
     $('#screen_name').focus(); 
     error = error + 1; 
    } 
    if (tipo==1||tipo==2||tipo==3) { 
     if ($('#scroll_text').val()=='') { 
      $('#message').removeClass().addClass('text-danger').html("<strong><?php echo _("Inserisci una testo da fare scorrere per proseguire."); ?></strong>").fadeTo(900,1); 
      $('#scroll_text').focus(); 
      error = error + 1; 
     } 
    } 
    if (tipo==2||tipo==4) { 
     if ($('#templ_img').val()=='') { 
      $('#message').removeClass().addClass('text-danger').html("<strong><?php echo _("Scegli una immagine per proseguire."); ?></strong>").fadeTo(900,1); 
      $('#templ_img').focus(); 
      error = error + 1; 
     } 
    } 
    if (tipo==3||tipo==5) { 
     if ($('#templ_film').val()=='') { 
      $('#message').removeClass().addClass('text-danger').html("<strong><?php echo _("Scegli un video per proseguire."); ?></strong>").fadeTo(900,1); 
      $('#templ_film').focus(); 
      error = error + 1; 
     } 
    } 
    if (error==0) { 
     ajaxSubmit(); 
    } 
}); 

私は何をしないのですか?このコードで何が間違っていますか? tipo=2を想定し、それが評価されます:

  1. #templ_img
  2. #scroll_text
  3. #screen_name

が、次のようになります。

  1. #screen_name
  2. を配列形態およびJSコードの両方である
  3. #templ_img

+0

もちろん、 'elseif'は不要ですか? 'if'sだけでは、以前のことが何をしたのかを後者が引き継ぐ可能性が常にあります。 – Yoshi

+0

@ Yoshiあなたは正しいです。それぞれの方法で前のものを上書きするので、最後のものだけが表示されます。ありがとう、これは私の問題を解決した –

答えて

0

@Yoshiアドバイスによると、以前のエラーがないかどうかを調べるif文をそれぞれラップすることで問題を解決しました。

if (error==0) { 
    if (tipo==1||tipo==2||tipo==3) { 
     if ($('#scroll_text').val()=='') { 
      $('#message').removeClass().addClass('text-danger').html("<strong><?php echo _("Inserisci una testo da fare scorrere per proseguire."); ?></strong>").fadeTo(900,1); 
      $('#scroll_text').focus(); 
      error = error + 1; 
     } 
    } 
} 

たとえば、 私のコードは、次のもので見つかった各エラーを上書きしていました。 Else Ifは、innerがelseの場合は適用されませんが、最初にtipoの値をチェックしています。

関連する問題