Javascript:表单在第一次验证和应用样式后提交
Javascript: Form submits after first validation and after applying styles
Am试图阻止某些用户ID通过电子邮件提交表单,例如黑名单denieduser1@domain.com并接受denieduser1,当用户提交表单时,会出现一个引导程序警报,说有问题,问题是如果你再次点击按钮,表单就被提交了,而没有再次进行验证,如果我删除了应用样式的部分并使用了警报,那么它就可以工作了,所以这里的代码是:
对于表格:
<form id="contact" method="post" class="form" role="form" onsubmit="return validate()" action="m41lS3nd.php">
验证代码:
function validate(){
e.preventDefault;
var rejectList = [ "denied1" , "denied2" ]; //List of Blacklisted emails or domains
var emailValue = $('#email').val(); // To Get Value (can use getElementById)
var splitArray = emailValue.split('@'); // To Get Array
if(rejectList.indexOf(splitArray[0]) >= 0) //Check if contains any unwanted emails
{
// Means it has the rejected domains
document.getElementById("notification").style.display = "block"; //If unwanted emails are detected will show an alert
document.getElementById("notification").style.marginTop = "5px";
return false;
}else
var contactform = document.getElementById("contact"); //If good email is entered then get the form name and submits the form
contactform.submit();
return true;
}
引导程序警报:
<!--Notification for invalid emails such as spam or unsolicited emails-->
<div id="notification" class="alert alert-warning alert-dismissible fade in" role="alert" style="display: none;">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Oops!</strong>There is something wrong with your email, your reference code is: BL1SE.
</div>
提交按钮:
<button class="btn btn btn-md" type="submit">Send Message <i class="fa fa-paper-plane fa-1x" style="color: white;"></i></button>
我接受了代码并改编自这篇文章,但无法发表评论或联系作者,也不知道哪里做错了:验证代码
您的Javascript语法似乎不正确,因为e.preventDefault();
引用了一个不存在的变量。我怀疑您的Javascript控制台正在报告错误。
我还强烈建议在else
之后适当添加{}
。我想这不会像你想的那样。格式化以显示差异:
} else
var contactform = document.getElementById("contact");
contactform.submit();
return true;
与相比
} else {
var contactform = document.getElementById("contact");
contactform.submit();
}
return true;
如果您添加了另一个不返回的else/if
条件,那么您将在不声明和初始化contactform
的情况下达到contactform.submit();
。
相关文章:
- 当主导航离开视图时,为粘性导航应用样式
- CSS根据属性的可用性有条件地应用样式
- 从跨域对Iframe应用样式
- 如果父宽度大于特定值,则css应用样式
- Javascript:表单在第一次验证和应用样式后提交
- 需要通过Javascript代码应用样式的帮助
- 如何单独对输入标签应用样式
- jQuery 在动态加载内容并使用 .replaceWith() 后不应用样式
- 应用样式,无论元素是否已使用 jQuery 添加到 DOM 中
- 使用 javascript 在标签中应用样式(不带 jQuery)
- 应用样式的屏幕在网页上轻扫
- 基于javascript条件应用样式
- 应用样式“;游标:指针”;所有具有onClick功能的React组件
- 如何在动态生成的元素上应用样式
- 浏览器在繁重的工作负载之前不应用样式
- Jquery移动动态字段未应用样式
- 使用JavaScript添加内容后重新应用样式
- 媒体打印;t在chrome上应用样式,但在firefox中效果完美
- 在javascript中切换时,Chrome应用样式表的速度非常慢
- Wordpress子主题没有通过JQuery应用样式