我有一个 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
关联,此行为适用于另一篇文章)?谢谢。
最佳答案
这是您现有功能的一部分:
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/