【发布时间】:2018-04-07 03:44:33
【问题描述】:
我在一页上有三个电子邮件表单,都使用同一个类。当有人输入电子邮件地址并提交其中一个表单时,我想验证输入该特定表单的电子邮件地址。我遇到的问题是有人为后来的一个表单输入了一个电子邮件地址,它会根据第一个表单中的数据进行验证。如何使我的验证函数验证输入电子邮件地址的字段,而不必为每个表单提供唯一 ID 并多次验证代码?
验证代码如下和其中一种形式的代码。谢谢!
<script>
function validateMyForm() {
var sEmail = $('.one-field-pardot-form-handler').val();
if ($.trim(sEmail).length == 0) {
event.preventDefault();
alert('Please enter valid email address.');
return false;
}
if (validateEmail(sEmail)) {
}
else {
event.preventDefault();
alert('Invalid Email Address. Please try again.'); }
};
function validateEmail(sEmail) {
var filter = /^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
if (filter.test(sEmail)) {
return true;
}
else {
return false;
}
}
</script>
<form action="https://go.pardot.com/l/43312/2017-10-24/7dnr3n" method="post" onSubmit="return validateMyForm();" novalidate>
<input class="one-field-pardot-form-handler" maxlength="80" name="email" size="20" type="email" placeholder="Enter Email Address" required="required" />
<div style="position:absolute; left:-9999px; top: -9999px;">
<label for="pardot_extra_field">Comments</label>
<input type="text" id="pardot_extra_field" name="pardot_extra_field">
</div>
<button type="submit" name="submit">Submit</button>
</form>
【问题讨论】:
-
你不能检查哪个输入有一个值,然后验证它的父表单吗?或者在提交时验证输入中包含值的每个表单(如果用户可以在多个表单中输入电子邮件)?
标签: javascript jquery forms validation email