Javascript订阅表单验证错误
Javascript Subscribe Form Validation Errors
我正在构建一个使用Javascript进行验证的基本订阅表单,但它不能正常工作。
我的表单代码是:
<form id="pageSubscribeForm">
<div class="pageSubscribeCell">
<input id="pageSubscribeName" type="text" class="pageSubscribeInput" value="Tell Us Your Name" />
</div>
<div class="pageSubscribeCell">
<input id="pageSubscribeEmail" type="text" class="pageSubscribeInput" value="Add Your Email Address" />
</div>
<div class="pageSubscribeCell hidden">
<input id="pageSubscribeSpam" type="text" class="pageSubscribeInput" value="" />
</div>
<div class="pageSubscribeCell">
<div class="pageSubscribeButton">
<div id="pageSubscribeSubmit" class="pageSubscribeAction"></div>
</div>
</div>
</form>
验证代码为:
$("#pageSubscribeSubmit").click(function() {
var name = $("#pageSubscribeName").val();
var nameok = 0;
var email = $("#pageSubscribeEmail").val();
var emailok = 0;
var spam = $("#pageSubscribeSpam").val();
var spamok = 0;
var dataString = 'name='+ name + '&email=' + email + '&spam=' + spam;
if(name!='Tell Us Your Name'){
nameok = 1
}else{
$("#pageSubscribeName").removeClass("subscribeSuccess").addClass("subscribeError");
}
if(email!='Add Your Your Email Address'){
emailok = 1
}else{
$("#pageSubscribeEmail").removeClass("subscribeSuccess").addClass("subscribeError");
}
if(spam ==''){
spamok = 1
}else{
$("#pageSubscribeSpam").removeClass("subscribeSuccess").addClass("subscribeError");
}
if(nameok == 1 && emailok == 1 && spamok == 1){
$('#pageSubscribeSubmit').hide();
}
当我点击submit
链接时,我会将错误类添加到我的Name单元格中,但电子邮件单元格保持不变,垃圾邮件单元格保持隐藏。有什么想法为什么或如何修复吗?
您的电子邮件字段没有得到错误类,因为您的测试检查了错误的文本(2x"Your"):
if(email!='Add Your Your Email Address'){
你还问为什么"…垃圾邮件单元格保持隐藏…"。你发布的代码中没有任何内容可以从#pageSubscribeSpam周围的div中删除.hidden类。假设你的.hidden类按照它的建议执行,那么#pageSubscribeSpam输入在页面加载时是隐藏的。用户无法输入值,因此当单击按钮时,其值仍然为"。所以spamok = 1
,永远不会添加.subscribeError类。
要修复您的代码,请删除测试中的第二个"YOUR"
if(电子邮件!="添加您的电子邮件地址"){
为了避免这样的问题,我强烈建议像这样的工作
$(function() {
$("#pageSubscribeSubmit").on("click", function() {
var name = $.trim($("#pageSubscribeName").val());
var email = $.trim($("#pageSubscribeEmail").val());
var spam = $("#pageSubscribeSpam").val();
var dataString = 'name=' + name + '&email=' + email + '&spam=' + spam;
$("#pageSubscribeName").toggleClass("pageSubscribeError", name == "");
$("#pageSubscribeEmail").toggleClass("pageSubscribeError", email == "");
var spamok = spam == $("#pageSubscribeSpam").get(0).defaultValue; // nothing changed
$("#pageSubscribeSpam").toggle(!spamok);
if (spamok && $(".pageSubscribeError").length == 0) { // no errors
$('#pageSubscribeSubmit').hide();
$.ajax({
type: "POST",
url: "php/subscribe.php",
data: dataString,
success: function() {
$('#pageSubscribeSubmit').slideUp();
}
});
}
});
});
.pageSubscribeError { border:1px solid red }
#pageSubscribeSpam { display:none }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form id="pageSubscribeForm">
<div class="pageSubscribeCell">
<input id="pageSubscribeName" type="text" class="pageSubscribeInput" value="" placeholder="Tell Us Your Name" />
</div>
<div class="pageSubscribeCell">
<input id="pageSubscribeEmail" type="text" class="pageSubscribeInput" value="" placeholder="Add Your E-Mail Address" />
</div>
<div class="pageSubscribeCell hidden">
<input id="pageSubscribeSpam" type="text" class="pageSubscribeInput" value="khujh" />
</div>
<div class="pageSubscribeCell">
<div class="pageSubscribeButton">
<div id="pageSubscribeSubmit" class="pageSubscribeAction">Submit</div>
</div>
</div>
</form>
相关文章:
- 页面上的2个表单带有JS验证-其中一个抛出电子邮件验证错误
- 表单值未在单击按钮时发布,显示验证错误
- 无法使用JavaScript打印带有for循环的验证错误
- 为什么我的 JavaScript 会导致 HTML 验证错误
- 如何在单击“提交”按钮后保留经典 ASP 页(发生验证错误时)
- 如果验证错误,则停止回发
- JavaScript 中的验证错误
- 使用PayPal按钮登录 JavaScript 代码生成器验证错误
- gulp-jquery验证错误
- 如果发生验证错误,请阻止启动窗体打开
- 如何使用angular js在表单上显示服务器端验证错误消息
- Javascript订阅表单验证错误
- BrainTree Sandbox返回验证错误:-未知paymentMethodNonce
- Javascript表单验证错误
- jQuery.show()调用中弹出HTML5表单验证错误
- Jquery.在表单顶部验证错误消息
- jQuery:在验证错误之后,我的输入掩码函数不会'Don’不要在野外工作
- 如果验证错误是有效的JAVASCRIPT,则启用按钮
- 如何从HTML5输入中删除验证错误
- javascript中的单选按钮验证错误