表单提交不起作用

时间:2010-07-20 21:58:03

标签: javascript ajax jquery

我花了一个小时在网上搜索可能的解决方案,也许我没有使用正确的条款。我希望有人能在这里帮助我。 我有一个在fancyBox iframe中使用的表单,在我的提交按钮下面添加这个“if语句”后不再起作用。但是,如果我选择超过5天,我会收到错误警告(奇怪......)。如果我删除它,表单提交将再次有效。

if (VType == 'useRange'){
  var splitName = vacDays.split(" - ");
  var startDay =    Date.parse(splitName[0].trim());
  var endDay =  Date.parse(splitName[1].trim());
  var dayCount = (endDay - startDay) / (86400000);
  if (dayCount > 4)         
  alert('The date range cannot exceed 5 consecutive days');
  return false;
}

以下是完整的脚本,提前感谢您的帮助!

$("#addVacButton").click(function(event){
  event.preventDefault();

  if (!$('#VacAddForm').valid())
  return false;

  var vacDays = $("#vacDays").val();
  var VacHours = $("input[name='VacHours']:checked").length;
  var VAC_UnschedTime = $("#VAC_UnschedTime").val();
  var VAC_Unsched = $("#VAC_Unsched").val();
  var VType = $("input[name='VTypeID']):checked").attr('id');

  //check if date range exceed 5 days
  if (VType == 'useRange'){
    var splitName = vacDays.split(" - ");
    var startDay =  Date.parse(splitName[0].trim());
    var endDay =    Date.parse(splitName[1].trim());
    var dayCount = (endDay - startDay) / (86400000);
    if (dayCount > 4)           
    alert('The date range cannot exceed 5 consecutive days');
    return false;
  }


  var data = $("#VacAddForm").serialize();
  $.ajax({  
    url: "cfc/fms.cfc?method=insertVAC&returnformat=plain",                  
    type: "POST",              
    data: data,                 
    cache: false,                
    success: function (returnMessage) {   
    var returnMsg = jQuery.trim(returnMessage);
      if (returnMsg.search(/Error/i) == '-1'){      
        alert('ok');
      }
      else{             
        alert('error');
      }  
    }
  });
  return false;

});

这是链接:

<a id="VacAddForm" href="forms/VacAddForm.cfm?id=#id#"> Add</a> 

2 个答案:

答案 0 :(得分:2)

您需要为if语句提供适当的块:

if (dayCount > 4) {           
        alert('The selected days can\'t exceed 5 days');
        return false;
}

答案 1 :(得分:0)

在第10行,您应该使用//而不是\,因此您的评论是错误的。将其改为反弹。