Javascript时髦函数

Javascript时髦函数,javascript,forms,validation,Javascript,Forms,Validation,处理客户端站点的验证脚本。每个函数都可以单独正常工作,但是当我从一个函数调用它们时,页面仍然提交。这是我的密码: <script type="text/javascript"> function validateForm() { checkDate(); checkRemainingFields(); checkPhone(); } /**-------------------------- //* Va

处理客户端站点的验证脚本。每个函数都可以单独正常工作,但是当我从一个函数调用它们时,页面仍然提交。这是我的密码:

    <script type="text/javascript">

    function validateForm() {
      checkDate();
      checkRemainingFields();
      checkPhone();
    }

    /**--------------------------
    //* Validate Date Field script- By JavaScriptKit.com
    //* For this script and 100s more, visit http://www.javascriptkit.com
    //* This notice must stay intact for usage
    ---------------------------**/

    function checkDate(){
      var input=document.forms[0].eventdate;
      var validformat=/^\d{2}\/\d{2}\/\d{4}$/; //Basic check for format validity

      if (!validformat.test(input.value)) {
        alert("Invalid Day, Month, or Year range detected. Proper format is MM/DD/YYYY, please correct and submit again.")
        return false;
      } else{  //Detailed check for valid date ranges
      var monthfield=input.value.split("/")[0];
      var dayfield=input.value.split("/")[1];
      var yearfield=input.value.split("/")[2];
      var dayobj = new Date(yearfield, monthfield-1, dayfield);
    }

    if ((dayobj.getMonth()+1!=monthfield)||(dayobj.getDate()!=dayfield)||(dayobj.getFullYear()!=yearfield)) {
      alert("Invalid Day, Month, or Year range detected. Proper format is MM/DD/YYYY, please correct and submit again.")
      return false;
      } else return true;
    }

    function checkRemainingFields() {
      var theme=document.forms[0].theme;
      var text=document.forms[0].text;
      var name=document.forms[0].contactperson;

      if (theme.value.length==0) {
        alert("Invalid theme value.  Please correct the theme field to continue.");
        return false;
      } else if (text.value.length==0) {
        alert("Invalid description value. Please correct the desciption field to continue.");
        return false;
      } else if (name.value.length==0) {
        alert("Invalid name value.  Please correct the name field to continue.");
        return false;
      } else return true;
    }

    function checkPhone() {
      var input=document.forms[0].contactphone;
      var validformat=/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
      var ext=document.forms[0].extension;

      if (!validformat.test(input.value)) {
        alert("Invalid phone number detected. The proper format is 555-555-5555. Please correct and submit again.");
        return false;
      } else if (ext.value.length != 3){ //Check extension
        alert("Invalid extension.  Please type your 3 digit extension.");
        return false;
      } else return true;
    }

    </script>

函数validateForm(){
checkDate();
checkRemainingFields();
checkPhone();
}
/**--------------------------
//*验证日期字段脚本-通过JavaScriptKit.com
//*有关此脚本和100多个脚本,请访问http://www.javascriptkit.com
//*此通知在使用时必须保持完整
---------------------------**/
函数checkDate(){
var input=document.forms[0].eventdate;
var validformat=/^\d{2}\/\d{2}\/\d{4}$//;//格式有效性的基本检查
如果(!validformat.test(输入值)){
警报(“检测到无效的日、月或年范围。正确的格式为MM/DD/YYYY,请更正并重新提交。”)
返回false;
}else{//详细检查有效日期范围
var monthfield=input.value.split(“/”[0];
var dayfield=input.value.split(“/”[1];
var yearfield=input.value.split(“/”[2];
var dayobj=新日期(年字段,月字段-1,日字段);
}
if((dayobj.getMonth()+1!=monthfield)| |(dayobj.getDate()!=dayfield)| |(dayobj.getFullYear()!=yearfield)){
警报(“检测到无效的日、月或年范围。正确的格式为MM/DD/YYYY,请更正并重新提交。”)
返回false;
}否则返回true;
}
函数checkRemainingFields(){
var-theme=document.forms[0]。主题;
var text=document.forms[0]。text;
var name=document.forms[0]。联系人;
if(theme.value.length==0){
警报(“无效的主题值。请更正主题字段以继续。”);
返回false;
}else if(text.value.length==0){
警报(“描述值无效。请更正描述字段以继续。”);
返回false;
}else if(name.value.length==0){
警报(“无效的名称值。请更正名称字段以继续。”);
返回false;
}否则返回true;
}
函数checkPhone(){
var input=document.forms[0]。contactphone;
var validformat=/^\(?([0-9]{3})\)?[-.]([0-9]{3})[-.]?([0-9]{4})$/;
var ext=document.forms[0]。扩展名;
如果(!validformat.test(输入值)){
警报(“检测到无效的电话号码。正确的格式为555-555-5555。请更正并重新提交”);
返回false;
}如果(ext.value.length!=3){//请检查扩展名
警报(“无效分机。请键入您的3位分机。”);
返回false;
}否则返回true;
}
validateForm()将在页面后面的表单中使用onsubmit调用。我不确定我写的电话是否正确。提交表单时,它会进行所有检查并显示每个表单的警报,但页面会继续显示到php处理页面。我需要一些帮助。

试试以下方法:

function validateForm() {
  if(checkDate())
     {
       if(checkRemainingFields())
            {
              checkPhone();
            }
       }
  }
function validateForm() {
    return checkDate() && checkRemainingFields() && checkPhone();
}
当这些函数返回
false
时,需要返回
false
,否则返回
true

一种更为详细的等效方法是:

function validateForm() {
    if (!checkDate()) return false;
    if (!checkRemainingFields()) return false;
    if (!checkPhone()) return false;
    return true;
}

这会跳过checkDate()和checkRemainingFields()并直接转到checkPhone()。我错了,它会处理所有内容,但仍会处理表单并出现错误。这将修复它。我认为我的电话看起来不对劲,但我在网上找不到。我相信第二个电话是我上学期在课堂上学到的,但我记不起来了,已经把我的书卖了回去(这是个错误)哈。第一种方法依赖于
&
作为“短路”运算符,这意味着如果较早的操作数的计算结果为
false
,则不会计算剩余的操作数,因此不会调用其他函数。这很完美,如果我能帮上忙,我不希望有多个警报框。在我看来很乱