Javascript 防止提交无效电子邮件地址的表单
我正在使用这个工具: 。。。验证电子邮件地址是否确实存在 此工具工作正常,但即使验证失败,用户仍可以提交表单。如果用户输入的电子邮件地址无效,我需要向代码中添加什么,以不允许用户提交表单 用于执行验证的代码段:Javascript 防止提交无效电子邮件地址的表单,javascript,jquery,forms,email-validation,onsubmit,Javascript,Jquery,Forms,Email Validation,Onsubmit,我正在使用这个工具: 。。。验证电子邮件地址是否确实存在 此工具工作正常,但即使验证失败,用户仍可以提交表单。如果用户输入的电子邮件地址无效,我需要向代码中添加什么,以不允许用户提交表单 用于执行验证的代码段: <script type="text/javascript"> var $plugin = new emailValidation( $( "#email"), { token: "[
<script type="text/javascript">
var $plugin = new emailValidation(
$( "#email"), {
token: "[hidden]",
proxyPath: "[hidden]",
featureVersion: "1.0" ,
timeout: 10000,
inlineMode: true,
showLoading: true,
onSuccess: function (data) {
// onSuccess callback implementation
},
onError: function (jqXHR, status, errThrown) {
},
messages: {
emptyEmail: "Please enter email.",
error: "Please contact Experian QAS support.",
timeout: "Timeout.",
success: "yay!"
},
styles: {
success: "success",
successInline: "success-inline",
error: "error",
errorInline: "error-inline",
loading: "loading",
correctionEmail: "correctionEmail",
emailPicklistHeader: "emailPicklistHeader",
emailPicklist: "emailPicklist",
picklistItem: "picklistItem",
picklistItemText: "picklistItemText",
closeButton: "closeButton",
}
}
);
</script>
var$plugin=新邮件验证(
$(“#电子邮件”){
令牌:“[隐藏]”,
proxyPath:“[隐藏]”,
功能版本:“1.0”,
超时:10000,
inlineMode:正确,
上映:没错,
onSuccess:函数(数据){
//onSuccess回调实现
},
onError:函数(jqXHR、状态、错误抛出){
},
信息:{
emptyEmail:“请输入电子邮件。”,
错误:“请联系益百利QAS支持。”,
超时:“超时。”,
成功:“耶!”
},
风格:{
成功:“成功”,
successInline:“成功内联”,
错误:“错误”,
errorInline:“errorInline”,
加载:“加载”,
更正邮件:“更正邮件”,
emailPicklistHeader:“emailPicklistHeader”,
emailPicklist:“emailPicklist”,
picklistItem:“picklistItem”,
picklistItemText:“picklistItemText”,
关闭按钮:“关闭按钮”,
}
}
);
关键在于小部件事件:onSuccess
和onError
。使用它们,您可以通过多种方式做到这一点,例如:
onSuccess: function (data) {
$('#mySubmit').prop("disabled", null);
},
onError: function (jqXHR, status, errThrown) {
$('#mySubmit').prop("disabled", "disabled");
}
onSuccess: function (data) {
$('#myForm').data("email-ok", true);
},
onError: function (jqXHR, status, errThrown) {
$('#myForm').data("email-ok", false);
}
// On form
$("#myForm").on("submit", function(e) {
if (!$(this).data("email-ok")) {
e.preventDefault();
// show an error message
}
});
在这两种情况下,您都必须等待服务的响应,然后管理表单。我认为选项#2更好,但#1也可以。你能链接到插件文档而不是产品页面吗?“这个工具工作正常”-它只能返回我测试过的几个现有地址的“未知”…我真的不知道其中的值是什么?//您显示的验证方法似乎是异步的,因此您必须阻止用户提交表单,直到您从该异步调用中得到肯定的响应为止。@CBroe-您必须完成这两行才能测试:标记:“[hidden]”,代理路径:“[hidden]”,@卢卡-当然:@juneallison我指的是他们工具的在线版本。谢谢,但我尝试了这两种解决方案,但都没有成功。显然,我用正确的ID替换了myForm或mySubmit。我还会错过什么?根据文档,我尝试用“已验证”替换“电子邮件确认”。我的表单标签是这样的:我确实有一个隐藏字段,看起来像@juneallison,你说的“未工作”是什么意思。您需要检查控制台(F12)是否存在错误或调试代码的事件,以了解实际发生的情况。