3

无论是提交还是刚刚加载,是否可以在页面加载时执行验证?

我需要为处理页面部分中创建的普通验证和分配给数字字段的最小最大验证实现它。

是否可以实施?

4

1 回答 1

1

确实:进行服务器端验证会引发错误,但页面已提交,因此更改的值处于会话状态。您可以尝试通过 plsql 验证来防止这种情况发生,该验证会在发生错误时清除会话状态值,但可能不是最佳的。我认为一些javascript可以减轻一些麻烦。

这是一些限制往返日期选择器中的可选范围的 javascript。它不允许用户选择比当前更大的,反之亦然。它还将项目设置为只读,因此用户必须通过日期选择器进行选择,并且不能手动更改它。

页面 > Javascript > 函数和全局变量声明

function f_check_date(){
  var lFrom = $("#P6_DATE_FROM").datepicker("getDate"),
      lTo = $("#P6_DATE_TO").datepicker("getDate");

  if(lFrom > lTo || lTo < lFrom){
    //in case it does happen
    $("#P6_DATE_FROM").val('');
    $("#P6_DATE_FROM").val('');
    alert('Please select a valid date range.');
  } else {
    //when a date changes, the other datepicker has to be altered so the
    //range is adjusted
    $("#P6_DATE_FROM").datepicker("option","maxDate",lTo);
    $("#P6_DATE_TO").datepicker("option","minDate",lFrom);
  };
};

动态操作、页面加载、执行 javascript

//on load, set the datepicker range in case a date is already present
//when the date changes, call the datecheck function
//and set item to readonly
$("#P6_DATE_FROM")
.datepicker("option","maxDate",$("#P6_DATE_TO").datepicker("getDate"))
.change(f_check_date)
.prop("readonly",true);
$("#P6_DATE_TO")
.datepicker("option","minDate",$("#P6_DATE_FROM").datepicker("getDate"))
.change(f_check_date)
.prop("readonly",true);
于 2013-04-11T19:43:39.907 回答