Js表单Submit问题

一般在submit前,会用js查核是否满足提交标准,如下:

function doSubmit(){

  if(doucument.getElementbyId("myID") ==""){

    alert("xxxx为空!!!");

    return false;

}

return true;

}

但如果dosubmit中需要检验的模块较多,为了方便,我们在先定义多个js方法,然后在dosubmit中调用这些js方法,如下

function doSubmit(){

  CheckRadioButton();

  CheckTextBox();

  return true;

}

function CheckRadioButton(){

   if(doucument.getElementbyId("myID") .checked==false){

    alert("未选中!!!");

    return false;

}

}

function CheckTextBox(){

  if(doucument.getElementbyId("myID") ==""){

    alert("xxxx为空!!!");

    return false;

}

}

这事我们发现,在提交表单时,有弹出对话框,但数据还是传送出去了!!!!但为什么第一种方式可行,第二种方式就不行了?

如果我们在js方法中加入event.returnValue=false,这时我们发现就可以了。

function doSubmit(){

  CheckRadioButton();

  CheckTextBox();

  return true;

}

function CheckRadioButton(){

   if(doucument.getElementbyId("myID") .checked==false){

    alert("未选中!!!");

    event.returnValue=false;

    return false;

}

}

function CheckTextBox(){

  if(doucument.getElementbyId("myID") ==""){

    alert("xxxx为空!!!");

    event.returnValue=false;

    return false;

}

}

那event.returnValue=false;与return false;有什么区别?

event.returnValue 将其值设置为false就可以取消事件的默认行为(适合IE),比如submit按钮提交表单的功能;return 就是从函数体返回一个结果。故在第一种

情况中,即使返回了false,但主函数体

function doSubmit(){

  return true;

}

依然返回true了!

原文地址:https://www.cnblogs.com/yuhuabaobao/p/4409686.html