JavaScript验证 - 中止ColdFusion操作页面加载

时间:2016-01-05 16:29:33

标签: javascript jquery html coldfusion form-submit

我有一个 CF 页面main.cfm,用于根据各种输入字段搜索记录。搜索form的操作页面指向自身(main.cfm)。

<form id="frm_srch" action="main.cfm" method="post" onSubmit="return validate_search_form()">

   <input id="order_date" name="OrderDate_srch" type="text"/>

我将 JS 函数validate_search_form()连接到onSubmit,除了实际中止页面加载外,一切正常。

function validate_search_form() {               
  var order_date = $("input[name='OrderDate_srch']").val();     

  var d = new Date(order_date);

  if( d == 'Invalid Date' && order_date != "" ) {
    alert("Invalid order date");
    returnToPreviousPage();
    //window.history.back();
    //event.returnValue = false;
    return(false);
  }

  alert("validations passed");
  //event.returnValue = true;
  return(true);     
}

我还尝试创建一个事件处理程序,以便始终阻止页面加载,如此

$('#frm_srch').submit(function (evt) {
  evt.preventDefault();
  window.history.back();
});

以及此帖javascript to stop form submission

中建议的所有其他内容

无论如何,使用常规form CF 页面发生这种情况?使用cfform / cfinput并不适用于我的案例b / c我无法让date字段正确切换为disabled / enabled(它与checkbox相关联,此行为适用于其他帖子)?感谢。

1 个答案:

答案 0 :(得分:2)

这是您现有职能的一部分:

if( d == 'Invalid Date' && order_date != "" ) {
    alert("Invalid order date");
    returnToPreviousPage();
    return(false);
}

alert("validations passed");
return(true);        

以下是js表格验证的简单版本:

 if (something is wrong) {
     display something;
     return false;
 }
 else
     return true;

第一个区别是函数调用returnToPreviousPage();如果问题出现在当前页面上,则此函数调用可能没有任何用处。事实上,它可能会搞砸你。

下一个区别是你的函数在if块之后没有关键字else。虽然if块中的return false命令执行起来并不重要,但它不会造成任何伤害,并且会阻止无意中返回该值。