控制控件输入的顺序
通常为了保证输入数据的合理性,都会对客户端页面中输入的数据进行合法性检查,
如果页面中控件的一些必输项,存在联动改变值的情况我们还需要对其先后顺序进行控制。
实现对于控件输入的先后顺序进行控制这一需求,我们大多都会考虑通过设置单元格校验属性不为空的校验表达式,实现手工校验。
我们姑且按照我们的最初的想法,测试一下,是否可行。
建一个填报表,分别在B1,D1中设置校验内容不为空的校验表达式,报表设置如下图所示:
我们勾选上了立即校验,这样设置之后,报表在发布是应该就会在单元格失去焦点时,进行判断,是否有输入值,报表在校验时应该会根据我控件的先后设置来进行校验吧。
可事实并非如此,即使我条件一的编辑框失去焦点,也没有校验,只有在单元格中的内容改变后,再将单元格内容置空,控件失去焦点后,才触发校验,
这样的设置显然不能实现控制报表控件输入的先后顺序,我们只能通过写JS函数才能更灵活的进行控制。
在页面中加上下面一段JS:
function testTiaoJian()
{ for(var i=0;i<1;i++)
{
for(var j=1;j<6;j=j+2)
{
var cell = document.getElementById(“report1″).rows[i].cells[j];
if(cell.value==”")
{
alert(cell.id+”不能为空“);
}
}
return true;
}
}
在报表中的单元格校验属性中直接调用这个JS方法。
这样的设置后,发布报表,无论您先输入那个条件,页面都会顺次提醒您需要填哪个条件。
这个只是一个简单的小例,在提示的时候没有将不应该输入内容的单元格内容清空,如果您需要进行清空,或者重置光标到应该输入条件的控件中,您都是可以通过这种遍历的方式,进行实现的。