首先,如果一个元素不是唯一的,请不要为其使用 ID。
假设我们在这里有两种形式:
<form id="formOne" class="validForm" method="post">
<input class="email" type="text"/>
<input class="newsletter" type="checkbox"/>
<input type="submit" value="Send"/>
<p class="error"></p>
</form>
<form id="formTwo" class="validForm" method="post">
<input class="email" type="text"/>
<input class="newsletter" type="checkbox"/>
<input type="submit" value="Send"/>
<p class="error"></p>
</form>
重要的是要知道您的表单元素是您的输入或选择元素的父级。因此,当您使用时,$(this)
您可以参考父级。
要在 jQuery 中验证这一点:
$('.validForm').submit(function(event){
var allInputsAreValid = true;
var form = null;
$('.validForm input').each(function(){
switch($(this).attr('class')){
case 'email':
if($(this).val() == "") {
allInputsAreValid = false;
}
break;
case 'newsletter':
// optional?
break;
}
if(!allInputsAreValid) {
form = $(this).parent();
break;
}
});
if(allInputsAreValid){
// everything is valid, transfer data
} else {
event.preventDefault();
$(form).children('.error').text(errorMessage);
}
});