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

标签 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

有没有办法通过使用常规 formCF 页面来实现这一点?使用 cfform/cfinput 在我的情况下不起作用 b/c 我无法将 date 字段切换为 disabled/enabled 是否正确(它与 checkbox 关联,此行为适用于另一篇文章)?谢谢。

最佳答案

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

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 block 之后没有关键字 else。虽然 if block 中的 return false 命令是否执行并不重要,但它不会造成任何伤害并防止无意中返回值。

关于JavaScript 验证 - 中止 ColdFusion 操作页面加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34616544/

相关文章:

Javascript:焦点不是函数

jquery - Squarespace 代码块对齐问题

javascript - 在选择选项中使用 @click - Vue.js 2

javascript - 带有签名 URL 的 Google Cloud Storage 上传在实际请求时会出现 cors 问题

javascript - [更新]在 Chrome 中使用 FileReader

javascript - 慢动作中的 jquery window.resizeTo

javascript - 嵌套对象的 JQuery 扩展 - 在扩展上设置 props 也会更改原始扩展对象

ajax - jquery - 在多个 .load 之后执行 [x]

javascript - Jquery 随机停止工作

javascript - 年份转换功能