Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript订阅表单验证错误_Javascript_Jquery_Validation - Fatal编程技术网

Javascript订阅表单验证错误

Javascript订阅表单验证错误,javascript,jquery,validation,Javascript,Jquery,Validation,我正在构建一个使用Javascript进行验证的基本订阅表单,但它不能正常工作 我的表格编号是: <form id="pageSubscribeForm"> <div class="pageSubscribeCell"> <input id="pageSubscribeName" type="text" class="pageSubscribeInput" value="Tell Us Your Name" /> </di

我正在构建一个使用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>

当我点击
submit
链接时,我会将错误类别添加到我的姓名单元格中,但电子邮件单元格保持不变,垃圾邮件单元格保持隐藏。想知道为什么或如何修复吗?

要修复代码,请删除测试中的第二个“YOUR”

如果(电子邮件!=“添加您的电子邮件地址”){

为了避免这样的问题,我强烈建议这样做

$(函数(){
$(“#pagesubscribebsubmit”)。在(“单击”,函数(){
变量名称=$.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(“PageSubscribeeError”,email==”);
var spamok=spam=$(“#pageSubscribeSpam”).get(0).defaultValue;//未更改任何内容
$(“#pageSubscribeSpam”).toggle(!spamok);
如果(spamok&&$(“.pageSubscribeError”).length==0{//无错误
$('#pagesubscribebsubmit').hide();
$.ajax({
类型:“POST”,
url:“php/subscribe.php”,
数据:dataString,
成功:函数(){
$('#pagesubscribebsubmit')。slideUp();
}
});
}
});
});
.pageSubscribeError{边框:1px实心红色}
#pageSubscribeSpam{display:none}

提交

您的电子邮件字段没有得到错误类,因为您的测试检查了错误的文本(2x“您的”):


你还问为什么“…垃圾邮件单元一直隐藏着…”。您发布的代码中没有任何内容会从#pageSubscribeSpam周围的div中删除.hidden类。假设您的.hidden类按其建议执行操作,则#pageSubscribeSpam输入在页面加载时隐藏。用户无法输入值,因此单击按钮时,其值仍然为“”。因此
spamok=1
,始终-它永远不会添加.subscribeError类。

如果只使用
placeholder=“告诉我们您的姓名”,您当然可以删除大量代码
我现在最关心的是让它工作起来!你能回答我的问题而不是试图编辑我的全部代码吗?使用
点击
对我来说很好。我不明白你的代码是什么意思,或者放在哪里!@mplungjan-我编辑代码是为了说明问题所在。第一个
如果
(名称)行得通,但另一个不行。你知道为什么吗?谢谢,但这段代码完全没有作用。没有添加错误类,表单按钮在填写表单时似乎不起作用或做任何事情!你能回答我为什么原始表单中的
名称
验证有效,而
电子邮件
垃圾邮件
无效吗?我可能有一个输入错误。它会显示在控制台上。我还有两个小时没有靠近我的电脑。没有冒犯,但我已经回到使用我的原始代码,因为我理解并认为我可以使用它。是jsut电子邮件变量没有按照我更新的代码中显示的那样正常工作。我会在以后查看。哦,FFS!我一直在阅读这些问题反复出现了好几个小时,但还没有发现。谢谢你指出这一点。是的,我后来注意到,
垃圾邮件
单元格确实能正常工作。:-)每个人都会遇到,当你盯着它看太久的时候!再次感谢。现在开始编写Ajax Post脚本:-(
$("#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();
}
if(email!='Add Your Your Email Address'){