asp 之 多功能考试系统090920疑惑,理解element用法
进入考试,提交做的答案,发现出错,仔细检查.发现了
数据库中id为自动编号类型,自动增长但当id的值大于等于1000后,则转向处理结果失败,经过检查测试,发现了
出问题的源代码
for each element in request.form '这里利用两次for循环把题目与答案判断了
j=0
for i=1 to request.form(element).count '通过调用request.form(element).Count 来确定参数中值的个数
if instr(element,"NO")<>0 then
id=mid(element,3,3)'090922发现超过1000,则提交失败根据mid用法可以改为id=mid(element,3)解决,就是从第三位开始,一直取后面的字符,直到结束
result=request.form(element)(i) '获得第一个
sql="select * from exam_databa where id="& clng(id)
以上可以知道mid(element,3,3)是从第三位字节开始,向后取3位,我取四位或者其余的字符就解决啦.
当然,也可以把id字段改为数字类型解决,不过,插入数据记录的语句就要更改下了。因为它(id)不会自动增长啦. 再看看element如何遍历的呢?再paper文件中的javascript
function All (ID) {
if (document.all)
{ return document.all[ID];
}
else if (document.documentElement)
{
return document.getElementById (ID);
}
else if (document.layers)
{ return document.layers[ID];
}
}
function GetObjectHeight(Object) {
DHTML_Init(Object);
if (document.all || document.documentElement)
{
Clip = Object.style.clip;
if (! Clip)
{ return Object.offsetHeight; }
else
{ return GetClipElement (Clip, 'Bottom');
}
}
else if (document.layers)
{ return Object.clip.height; }
}
function GetClipElement (Clip, Element)
{
Clip = Clip.substr(Clip.indexOf('(') + 1);
Clip = Clip.substr(0, Clip.length - 1);
Clippers = Clip.split (" ");
for (i = 0; i < Clippers.length; i++) {
if (Clippers[i] != 'auto') {
Clippers[i] = Clippers[i].replace (/D/g, ""); }
}
ClipTop = Number(Clippers[0]);
ClipRight = Number(Clippers[1]);
ClipBottom = Number(Clippers[2]);
ClipLeft = Number(Clippers[3]);
if (Element == 'Top')
{ return ClipTop; }
else if (Element == 'Right')
{ return ClipRight; }
else if (Element == 'Bottom')
{ return ClipBottom; }
else if (Element == 'Left')
{ return ClipLeft; }
else
{ return undefined; }
}
function GetObjectOffsetTop(Object) {
DHTML_Init(Object);
if (Object.offsetTop)
{ return Object.offsetTop; }
else if (document.layers)
{ return Object.top; }
}
function SetObjectOffsetTop(Object, Offset)
{
if (Object.style)
{ Object.style.top = Offset; }
else if (Object.top)
{ Object.top = Offset; }
}
CenterMenu = 1;
MenuBorder = 100;
TimeCheck = 250;
TimeUpdate = 15;
DivUpdate = 15;
Minimum = 50;
AddHeight = -4;
function ScrollMenu()
{
Menu = All('persistMenu');
WinTop = GetWindowOffsetTop();
WinHeight = GetWindowHeight() + AddHeight;
MenuTop = GetObjectOffsetTop(Menu);
MenuHeight = GetObjectHeight (Menu);
MenuNew = (CenterMenu) ? Math.round (WinTop + (WinHeight - MenuHeight) / 1) : WinTop + MenuBorder;
if (MenuNew < Minimum)
{ MenuNew = Minimum; }
if (MenuTop != MenuNew)
{
if ( (MenuTop + MenuHeight) < WinTop || MenuTop > (WinTop + WinHeight) )
{
SetObjectOffsetTop (Menu, (MenuTop < MenuNew) ? (WinTop - MenuHeight) : (WinTop + WinHeight));
}
else
{
Add = (MenuTop < MenuNew) ? 1 : -1;
SetObjectOffsetTop (Menu, MenuTop + Math.round((MenuNew - MenuTop) / DivUpdate) + Add);
}
}
window.setTimeout('ScrollMenu()', (GetObjectOffsetTop(Menu) == MenuNew) ? TimeCheck : TimeUpdate);
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length)
{
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
附带Element用法,要不,for each element in request.form 如何能运行呢?
Element. Selectors.js
Css查询相关的函数,以及对 Element 的一些扩展
License
MIT-style license.
Summary
Css查询相关的函数,以及对 Element 的一些扩展 |
|
|
|
|
|
选择一个符合给出选择器的元素 |
|
返回一个符合给出选择器的元素集合,如果给出了过滤器,则元素将被过滤。 |
|
|
|
|
|
根据给出的一个选择器(单个选择器,不能有逗号)来获取一个元素内部的子元素 |
|
用法和 Element.getElements相同,但只返回一个匹配的元素 |
|
用法和 Element.getElements相同,但允许在选择器中使用逗号(和css的规则一样) |
|
在一个元素的子元素中选取所给出id的元素。 |
top工具函数
概要
|
|
选择一个符合给出选择器的元素 |
|
返回一个符合给出选择器的元素集合,如果给出了过滤器,则元素将被过滤。 |
top函数
top$E
选择一个符合给出选择器的元素
参数
selector |
字符串。css选择器 |
filter |
可选。表示选择器的有效范围的一个元素。默认范围是document。 |
示例
$E('a', 'myElement') ;
返回值
a DOM element |
第一个符合选择器的元素 |
top$ES
返回一个符合给出选择器的元素集合,如果给出了过滤器,则元素将被过滤。
返回值
符合给出选择器的元素数组
参数
selector |
字符串。css选择器 |
filter |
可选。表示选择器的有效范围的一个元素。默认范围是document。 |
示例
$ES("a") //获取所有的a元素; 和 $$("a")功能相同
$ES('a','myElement') //获取在$('myElement')内部的所有a元素
topElement
Summary
|
|
根据给出的一个选择器(单个选择器,不能有逗号)来获取一个元素内部的子元素 |
|
用法和 Element.getElements相同,但只返回一个匹配的元素 |
|
用法和 Element.getElements相同,但允许在选择器中使用逗号(和css的规则一样) |
|
在一个元素的子元素中选取所给出id的元素。 |
top属性
topgetElements
根据给出的一个选择器(单个选择器,不能有逗号)来获取一个元素内部的子元素
参数
selector |
字符串。css选择器 |
示例
$('myElement').getElements('a'); //获取所有在myElement内的a元素
$('myElement').getElements('input[name=dialog]'); //获取所有在myElement内的name属性值为‘dialog’的input元素
$('myElement').getElements('input[name$=log]'); //获取所有在myElement内的name属性值以'log'结尾的input元素
备注
以下是在属性选择器中支持的操作符:
- = : 等于
- ^= : 开始于
- $= : 结束于
- != : 不等于
在支持Xpath的浏览器中将自动启用Xpath来进行查询。
topgetElement
用法和 Element.getElements相同,但只返回一个匹配的元素
参数
selector |
字符串。css选择器 |
topgetElementsBySelector
用法和 Element.getElements相同,但允许在选择器中使用逗号(和css的规则一样)
参数
selector |
字符串。css选择器 |
topgetElementById
在一个元素的子元素中选取所给出id的元素。 这个方法并没有去覆盖原有的document.getElementById
参数
id |
字符串。要查找的元素的id |