我有一些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;
});
问题是,无论是否选中框,它现在都不会提交。
我已经搜索了一些信息来帮助我一段时间,但没有运气,所以我想在这里问一下是否有人可以帮助我。
答案 0 :(得分:0)
有效变量后似乎有一个额外的感叹号。我建议也使用javascript调试器。
if (valid!='') {
答案 1 :(得分:0)
你缺少.ready函数的结束花括号。
答案 2 :(得分:0)
看起来你没有关闭$(document).ready()函数。您关闭sendmail单击功能,但不关闭主要功能。我认为代码的尾部应该如下所示: } 返回false; }); //关闭sendmail功能 }); // close document.ready
如果发生这种情况是因为将其复制到SO,那么请忽略它,但是如果这在您的代码中,那么您的浏览器可能不会做任何事情并且似乎不会对JavaScript做出反应。