我有一个带有3个文本输入的表单,该函数具有在提交时验证它们的功能,如下所示:
<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(){
$("form.formul :input[type=text]").each(function(){
var input = $(this);
var value = input.val();
if (value=="") {
console.log("l'input est vide");
return false;
}
else{
console.log(value);
return false;
}
});
}
.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)">
<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"/>
<input type="text" name="nom" placeholder="Nom"/>
<input type="text" name="email" placeholder="E-mail"/>
<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;
}
$("form.formul :input[type=text]").each(function(){
var input = $(this);
var value = input.val();
if (value=="") {
console.log("l'input est vide");
checkForm(false);
}
else{
console.log(value);
}
});
}
这有点奇怪吗?
最佳答案
您应该在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;
}