2017-01-18 19 views
0

形式我有與功能3個文本輸入的形式,以驗證他們提出這樣的:如何在短期內檢查在javascript

<form action="" method="post" onSubmit="return checkForm(this.form)"> 

和checkForm():

var pattern_name = /^([a-zA-Z\u00C0-\u00FF]+[ '-]?[a-zA-Z\u00C0-\u00FF]+){1,30}$/; 
 
var pattern_email = /^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$/; 
 

 
function checkForm(){ 
 
\t $("form.formul :input[type=text]").each(function(){ 
 
\t \t var input = $(this); 
 
\t \t var value = input.val(); 
 
\t \t if (value=="") { 
 
\t \t \t console.log("l'input est vide"); 
 
\t \t \t return false; 
 
\t \t } 
 
\t \t else{ 
 
\t \t \t console.log(value); 
 
\t \t \t return false; 
 
\t \t } 
 
\t }); 
 
}
.info-user{ 
 
    display: flex; 
 
    flex-direction: column; 
 
} 
 

 
.info-user input{ 
 
    width: 50%; 
 
    height: 30px; 
 
    margin: 10px 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form action="" method="post" onSubmit="return checkForm(this.form)"> \t \t \t 
 
    <div class="civilite"> 
 
     <input type="radio" name="civ" value="Mme." id="mme" class="inline-radio"/> 
 
     <label for="mme" class="civ-radio">Mme</label> 
 
     <input type="radio" name="civ" value="Mlle." id="mlle" class="inline-radio"/> 
 
     <label for="mlle" class="civ-radio">Mlle</label> 
 
     <input type="radio" name="civ" value="M." id="m" class="inline-radio"/> 
 
     <label for="m" class="civ-radio">M</label> 
 
    </div> 
 
    <div class="info-user"> 
 
     <input type="text" name="prenom" placeholder="Prénom"/> 
 
\t \t <input type="text" name="nom" placeholder="Nom"/> 
 
\t \t <input type="text" name="email" placeholder="E-mail"/> 
 
\t \t <input type="image" name="image" value="submit" id="cta" /> 
 
    </div> 
 
</form>

但在驗證提交表單時,控制檯會說:「l'input est vide」並重新載入表單...

我想停止驗證,直到表單有效

如果我需要的虛假陳述發送到功能checkForm,我必須傳輸通過.each功能虛假陳述?

是什麼?

function checkForm(e){ 
 
    if(e == false){ 
 
     return false; 
 
    } 
 
\t $("form.formul :input[type=text]").each(function(){ 
 
\t \t var input = $(this); 
 
\t \t var value = input.val(); 
 
\t \t if (value=="") { 
 
\t \t \t console.log("l'input est vide"); 
 
\t \t \t checkForm(false); 
 
\t \t } 
 
\t \t else{ 
 
\t \t \t console.log(value); 
 
\t \t } 
 
\t }); 
 
}

它不是有點不可思議?

+0

'$( 「form.formul」)'預計''

有 「FORMUL」 類;你的不。 – Pointy

+0

你想要什麼?返回false會停止驗證和提交,直到再次按下submi按鈕。 –

+0

@ Pointy:我只是忘記在我的表單標籤中添加該類:) @ Jonas:我需要停止用戶,直到3字段沒有填充或不正確 – Buck

回答

1

你應該在checkForm中返回驗證結果。 試試這個:

function checkForm(){ 
    var isValid = true; 
    $("form.formul :input[type=text]").each(function(){ 
     var input = $(this); 
     var value = input.val(); 
     if (value=="") { 
      // input is required! 
      console.log("l'input est vide"); 
      isValid = false; 
     } 
     else{ 
      console.log(value); 
      return false; 
     } 
    }); 
    return isValid; 
} 
+0

感謝它的工作:D – Buck

相關問題