【发布时间】:2020-03-14 14:43:19
【问题描述】:
我有一个包含多个电子邮件字段的表单,因此此电子邮件要提交到数据库中,但在此之前它应该验证以避免重复,(通过单击表单中存在的添加更多按钮生成多个电子邮件字段)。
我编写了 ValidateEmail 脚本以避免重复,但是它仅适用于一个电子邮件字段,但不适用于多个电子邮件字段。
问题: 1)如果我们在第一个字段中输入电子邮件 ID,它将进行验证并检查电子邮件是否存在,如果存在则禁用提交按钮,如果不存在则启用按钮。
2) 如果我们在第二个字段中键入电子邮件 ID,并且在验证后返回电子邮件不存在,那么它将启用提交按钮,但是在第一个电子邮件字段中包含重复的电子邮件。
3) 如果所有电子邮件字段不包含重复值,则仅启用提交按钮,否则应保持禁用状态..
<form>
<div>
<input type="email" name="email[]" class="email" onblur="validate_email(this)" /> // initially single filed
// This additional email fields created when click on add more button
<input type="email" name="email[]" class="email" onblur="validate_email(this)" />
<input type="email" name="email[]" class="email" onblur="validate_email(this)" />
<input type="email" name="email[]" class="email" onblur="validate_email(this)" />
</div>
<button class="add_more">Add more</button> // this will append extra email fileds
</form>
<script>
// This is the script it will check whether email already exist or not
function ValidateEmail(data) {
var email_id = data.value;
$.ajax({
type: "POST",
url: "<?= base_url('controller') ?>",
data:{
email_id:email_id
},
dataType: 'json',
success: function (response) {
if(response.exist){
// disable submit button and show error
}
else{
//enable submit field and hide error
}
},
error: function (jqXHR, textStatus, errorMessage) {
console.log(errorMessage); // Optional
}
});
}
</script>
【问题讨论】:
标签: javascript jquery email-validation