用javascript勾选的验证复选框

时间:2013-02-21 20:49:30

标签: javascript forms validation checkbox

我有一些javascript我用来验证一个工作正常的表单,但我现在需要添加一个复选框,需要在表单提交之前进行检查。复选框的名称是html中的条款,我设法使其不使用下面的代码提交表单。

$(document).ready(function(){
$("#sendmail").click(function(){
    var valid = '';
    var isr = ' is required.';
    var name = $("#name").val();
    var mail = $("#mail").val();
    var subject = $("#subject").val();
    var country = $("#country").val();



            if( !$("#terms").is(":checked") ){
        valid += '<br />Please accept the terms and conditions.';
    }
    if (name.length<1) {
        valid += '<br />Name'+isr;
    }
    if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
        valid += '<br />A valid Email'+isr;
    }
    if (subject.length<1) {
        valid += '<br />Website Link'+isr;
    }
    if (country.length<1) {
        valid += '<br />Country'+isr;
    }
    if (valid!='') {
        $("#response").fadeIn("slow");
        $("#response").html("Error:"+valid);
                    setTimeout('$("#response").fadeOut("slow")',4000);
    }
    else {
        var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&country=' + country;
        $("#response").css("display", "block");
        $("#response").html("<img src='http://infashionation.com/female/images/response.jpg'>");
        $("#response").fadeIn("slow");
        setTimeout("send('"+datastr+"')",2000);
    }
    return false;
});

问题是,无论是否选中框,它现在都不会提交。

我已经搜索了一些信息来帮助我一段时间,但没有运气,所以我想在这里问一下是否有人可以帮助我。

3 个答案:

答案 0 :(得分:0)

有效变量后似乎有一个额外的感叹号。我建议也使用javascript调试器。

if (valid!='') {

答案 1 :(得分:0)

你缺少.ready函数的结束花括号。

答案 2 :(得分:0)

看起来你没有关闭$(document).ready()函数。您关闭sendmail单击功能,但不关闭主要功能。我认为代码的尾部应该如下所示:         }     返回false;     }); //关闭sendmail功能     }); // close document.ready

如果发生这种情况是因为将其复制到SO,那么请忽略它,但是如果这在您的代码中,那么您的浏览器可能不会做任何事情并且似乎不会对JavaScript做出反应。