我有一个 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
相关联,此行为适用于其他帖子)?感谢。
答案 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
命令执行起来并不重要,但它不会造成任何伤害,并且会阻止无意中返回该值。