Javascript 为什么在validateform()返回值为false时提交表单?

Javascript 为什么在validateform()返回值为false时提交表单?,javascript,jquery,forms,jquery-mobile,Javascript,Jquery,Forms,Jquery Mobile,我在jquery mobile中有javascript验证的代码。但是问题是表单提交了,即使验证表单返回false。原因可能是什么请回复?下面是我的代码 //验证联系人表 函数validateContact(){ var emergencyContactElt=document.getElementById(“紧急联系人”); var emergencyContactEltRows=emergencyContactElt.rows; var maxrowNbr=紧急联系人elt.rows.l

我在jquery mobile中有javascript验证的代码。但是问题是表单提交了,即使验证表单返回false。原因可能是什么请回复?下面是我的代码


//验证联系人表
函数validateContact(){
var emergencyContactElt=document.getElementById(“紧急联系人”);
var emergencyContactEltRows=emergencyContactElt.rows;
var maxrowNbr=紧急联系人elt.rows.length;
var误差=0;
对于(变量i=1;i0){
返回false;
}否则{
返回true;
}
}
//验证表单
函数validateForm(){
var误差=0;
如果(!validateContact()){
错误++;
警惕(“联系”);
}
//如果有错误,请不要提交表格
如果(错误>0){
警报(错误);
警报(“需要突出显示字段”);
返回false;
}否则{
返回true;
}
}        
关系
名字
姓
电话
电子邮件Id
同意
在ADU工作/学习
员工Id/学生Id
添加/删除
兄弟
女儿
雇员
雇主
前配偶

您有控制台错误。但是,既然有了jQuery,为什么不使用它呢?在这里,您不再需要onsubmit,只需添加

.error { background-color:#e35152}
而且

$(function() {
  $("#submitform").on("submit", function(e) {
    $(this).find("input[type='text']").each(function() {
      $(this).toggleClass("error", $.trim(this.value) == "");
    });
    if ($(".error").length > 0) {
      e.preventDefault();
      alert("highlight fields are required");
    }
  });
});
$(函数(){
$(“#提交表单”)。关于(“提交”,函数(e){
$(this).find(“输入[type='text']”)。每个(函数(){
$(this.toggleClass(“error”,$.trim(this.value)==”);
});
如果($(“.error”).length>0){
e、 预防默认值();
警报(“需要突出显示字段”);
}
});
});
。错误{
背景色:#e35152
}

关系
名字
姓
电话
电子邮件Id
同意
在ADU工作/学习
员工Id/学生Id
添加/删除
兄弟
女儿
雇员
雇主
前配偶

由于“姓氏”之前的输入缺失,因此发生了原始问题。这导致“validateContact”函数引发异常


对于所有像这样的简单需求,最好使用原生内容而不是jquery。尝试使用“querySelector”方法来选择要处理的DOM节点。

是否使用IE?哪一个?控制台错误:
未捕获类型错误:无法读取
if(document.getElementById(“Emergency_Contact”).rows[i]。cells[3]。children[0]。children[0]。value==”)
上未定义的属性“children”(children)”
为什么不按您的方式使用它呢?jQuery表单验证将适用于这里!!:)在
validateForm()
中声明
var error
,因此它仅在该范围内可用。但是您在外部测试它,所以如果(错误>0)
,您将永远不会得到