如果在一个形式重复号产生错误 [英] Generate an error if number is repeated in a form
问题描述
我对管理目的的Web表单,用户可以更改顺序的一组记录在网页上显示。
例如:在数据库中的表(tblStuff)有三个领域:
内容识别,内容,RecordPosition
该表格,说,四个记录:
1,你猜怎么着,1
2,更多的东西,2
3,有些东西,3
4,这是正确的,4
在SQL code是:
SELECT * FROM tblStuff ORDER BY RecordPosition ASC
用户可以使用的形式来改变RecordPosition号码,这样的顺序可以阅读:
3,有些东西,1
2,更多的东西,2
1,你猜怎么着,3
4,这是正确的,4
所以...我如何可以验证的形式,使同样数量的未输入两次踏入RecordPosition领域?
希望这是有道理的。
下面是整个页面
<%@ LANGUAGE =VBSCRIPTcodePAGE =1252%GT;
<! - #包括虚拟=/连接/ ENG.asp - >
<%
***限制访问页面:授予或拒绝访问此页
MM_authorizedUsers =
MM_authFailedURL =../的Default.asp
MM_grantAccess = FALSE
如果会议(MM_Username)<> 然后
如果(true或CStr的(会议(MM_UserAuthorization))=)或_
(INSTR(1,MM_authorizedUsers,会议(MM_UserAuthorization))> = 1),然后
MM_grantAccess =真
万一
万一
如果不MM_grantAccess然后
MM_qsChar =?
如果(INSTR(1,MM_authFailedURL,)GT?; = 1)然后MM_qsChar =与&
MM_referrer = Request.ServerVariables(URL)
如果(莱恩(的Request.QueryString())大于0)然后MM_referrer = MM_referrer&放大器; ? &安培;的Request.QueryString()
MM_authFailedURL = MM_authFailedURL&安培; MM_qsChar&安培; 存取遭拒=与& Server.URLEn code(MM_referrer)
的Response.Redirect(MM_authFailedURL)
万一
%GT;
<%
如果的Request.Form(行动)=更新然后
为更新设置的变量
暗淡即updateSQL,我
昏暗cContentID,cPositionNumber通过屏幕和更新记录'循环
对于i = 1到fFormat(的Request.Form(反))'创建正确的字段名称在表单上引用
cContentID =内容识别与& CStr的(ⅰ)
cPositionNumber =PositionNumber与& CStr的(ⅰ)创建更新的SQL语句
即updateSQL =UPDATE tblContent SET PositionNumber =&放大器; fFormat(的Request.Form(cPositionNumber))及WHERE内容ID =&放大器; fFormat(的Request.Form(cContentID))运行SQL语句
呼叫sRunSQL(即updateSQL)
下一个'刷新页面
的Response.Redirect(记录订单 - 修改 - updated.asp)
万一功能fFormat(vText)
fFormat =替换(vText,',')
结束功能子sRunSQL(VSQL)
设置cExecute =的Server.CreateObject(ADODB.Command)
随着cExecute
.ActiveConnection = MM_ENG_STRING
.CommandText = VSQL
.CommandType = 1
.CommandTimeout = 0
。prepared = TRUE
。执行()
结束与
结束小组
%GT;
<%
昏暗rsCharityDetails
昏暗rsCharityDetails_cmd
昏暗rsCharityDetails_numRows设置rsCharityDetails_cmd =的Server.CreateObject(ADODB.Command)
rsCharityDetails_cmd.ActiveConnection = MM_ENG_STRING
rsCharityDetails_cmd.CommandText =SELECT * FROM tblCharityDetails
rsCharityDetails_cmd。prepared = TRUE设置rsCharityDetails = rsCharityDetails_cmd.Execute
rsCharityDetails_numRows = 0
%GT;
<%
昏暗rsNavBar
昏暗rsNavBar_cmd
昏暗rsNavBar_numRows设置rsNavBar_cmd =的Server.CreateObject(ADODB.Command)
rsNavBar_cmd.ActiveConnection = MM_ENG_STRING
rsNavBar_cmd.CommandText =SELECT * FROM tblMainMenu WHERE MainMenuID 6;或MainMenuID大于7
rsNavBar_cmd。prepared = TRUE设置rsNavBar = rsNavBar_cmd.Execute
rsNavBar_numRows = 0
%GT;
<%
昏暗rsContent__smID
rsContent__smID =1
如果(的Request.QueryString(SMID)&所述;>中)。然后
rsContent__smID =的Request.QueryString(SMID)
万一
%GT;
<%
昏暗rsContent
昏暗rsContent_cmd
昏暗rsContent_numRows设置rsContent_cmd =的Server.CreateObject(ADODB.Command)
rsContent_cmd.ActiveConnection = MM_ENG_STRING
rsContent_cmd.CommandText =SELECT tblContent。*,tblMainMenu.MainMenuName,tblSubMenu.SubMenuName,tblSubMenu.SubMenuID FROM(tblContent LEFT JOIN tblMainMenu ON tblContent.MainMenuID = tblMainMenu.MainMenuID)LEFT JOIN tblSubMenu ON tblContent.SubMenuID = tblSubMenu.SubMenuID WHERE tblContent。 SubMenuID =?AND tblContent.DisplayRecord = 1 ORDER BY tblContent.PositionNumber
rsContent_cmd。prepared = TRUE
rsContent_cmd.Parameters.Append rsContent_cmd.CreateParameter(参数1,5,1,-1,rsContent__smID)'adDouble设置rsContent = rsContent_cmd.Execute
rsContent_numRows = 0
%GT;
<%
昏暗rsMenuList
昏暗rsMenuList_cmd
昏暗rsMenuList_numRows设置rsMenuList_cmd =的Server.CreateObject(ADODB.Command)
rsMenuList_cmd.ActiveConnection = MM_ENG_STRING
rsMenuList_cmd.CommandText =SELECT tblMainMenu.MainMenuID,tblMainMenu.MainMenuName,tblSubMenu.SubMenuID,tblSubMenu.SubMenuName FROM tblMainMenu INNER JOIN tblSubMenu ON tblMainMenu.MainMenuID = tblSubMenu.MainMenuID WHERE tblSubMenu.SubMenuID<> 6 tblSubMenu.SubMenuID< 16 OR tblSubMenu.SubMenuID> 19
rsMenuList_cmd。prepared = TRUE设置rsMenuList = rsMenuList_cmd.Execute
rsMenuList_numRows = 0
%GT;
<%
昏暗rsHeaderImage
昏暗rsHeaderImage_cmd
昏暗rsHeaderImage_numRows设置rsHeaderImage_cmd =的Server.CreateObject(ADODB.Command)
rsHeaderImage_cmd.ActiveConnection = MM_ENG_STRING
rsHeaderImage_cmd.CommandText =SELECT MainMenuImage,MainMenuID FROM tblMainMenu
rsHeaderImage_cmd。prepared = TRUE设置rsHeaderImage = rsHeaderImage_cmd.Execute
rsHeaderImage_numRows = 0
%GT;
<%
昏暗navBar__numRows
昏暗navBar__indexnavBar__numRows = -1
navBar__index = 0
rsNavBar_numRows = rsNavBar_numRows + navBar__numRows
%GT;
<%
昏暗rptContent__numRows
昏暗rptContent__indexrptContent__numRows = -1
rptContent__index = 0
rsContent_numRows = rsContent_numRows + rptContent__numRows
%GT;
<%
昏暗Repeat_MenuList__numRows
昏暗Repeat_MenuList__indexRepeat_MenuList__numRows = -1
Repeat_MenuList__index = 0
rsMenuList_numRows = rsMenuList_numRows + Repeat_MenuList__numRows
%GT;
<!DOCTYPE HTML>
< HTML和GT;
< HEAD>
<间的charset =ISO-8859-1><! - 禁用iPhone inital规模 - >
< META NAME =视口CONTENT =WIDTH =设备的宽度;初始规模= 1.0><标题><%=(rsCharityDetails.Fields.Item(CharityName)值)%GT; |英文网站管理< /标题>
<! - 主css - >
<链接HREF =../../脚本/ MFM-标准stylesheet.css中相对=样式类型=文/ CSS><! - [如果LT IE 9] GT;
<链接的href =../脚本/ MFM-标准stylesheet_ie.css的rel =stylesheet属性类型=文/ CSS>
百分比抑制率ENDIF] - GT!;<! - 管理员CSS - >
<链接的href =../脚本/ MFM-管理-stylesheet.css中相对=样式类型=文/ CSS><脚本SRC =../../脚本/ jQuery的-1.7.2.min.js>< / SCRIPT>
< - 的jQuery插件NailThumb - 任何图像的任何缩略图实例和文档在:http://www.garralab.com/nailthumb.php - >
<脚本SRC =../../脚本/ jquery.nailthumb.1.1.js>< / SCRIPT>
!< - 通过LOKESH Dhakar Lightbox2 V2.51欲了解更多信息,请访问:http://lokeshdhakar.com/projects/lightbox2/ - >
<脚本SRC =../../脚本/ lightbox.js>< / SCRIPT>
<! - 灯箱CSS - >
<链接HREF =../../脚本/ lightbox.css的rel =stylesheet属性类型=文/ CSS媒体=屏幕/>
< SCRIPT SRC =../ tiny_mce / tiny_mce.js>< / SCRIPT>
< SCRIPT SRC =../ tiny_mce /微小-MCE-mfm.js>< / SCRIPT><! - html5.js为IE低于9 - >
<! - [如果LT IE 9] GT;
&所述; SCRIPT SRC =HTTP://html5shim.google$c$c.com/svn/trunk/html5.js>&下; /脚本>
百分比抑制率ENDIF] - GT!;<! - CSS3-mediaqueries.js为IE低于9 - >
<! - [如果LT IE 9] GT;
&所述; SCRIPT SRC =HTTP://css3-mediaqueries-js.google$c$c.com/svn/trunk/css3-mediaqueries.js>&下; /脚本>
百分比抑制率ENDIF] - GT!;< /头><身体ID =其他>< DIV ID =包装>
<头类=innerWidth>
<! - #include文件=包含/头 - 修改 - record.asp - >
< /头><导航类=innerWidth>
<! - #include文件=包括/导航栏 - 修改 - record.asp - >
< / NAV>&所述;! - pageContent - >
< DIV ID =内容类=innerWidth>&所述;! - 除了 - >
<一边>< H3>记录顺序与LT; / H3 GT&;< UL>
<%
昏暗txtOldHeading
txtOldHeading =
而((Repeat_MenuList__numRows<> 0)和(非rsMenuList.EOF))
如果txtOldHeading = rsMenuList.Fields.Item(MainMenuName)。值,那么
其他
txtOldHeading = rsMenuList.Fields.Item(MainMenuName)。价值
%GT;
<李班=menuHeading><%=(rsMenuList.Fields.Item(MainMenuName)值。)%GT;< /李>
<%
万一
%GT;
<李班=菜单列表>
<%如果(rsMenuList.Fields.Item(SubMenuID)值)。=3然后%>
&LT;一href=\"our-development-partners-record-order-modify.asp\"><%=(rsMenuList.Fields.Item(\"SubMenuName\").Value)%></a>
&LT;%elseif的(rsMenuList.Fields.Item(SubMenuID)值。)=15然后%&GT;
&LT;一href=\"shop-record-order-modify.asp\"><%=(rsMenuList.Fields.Item(\"SubMenuName\").Value)%></a>
&LT;%elseif的(rsMenuList.Fields.Item(SubMenuID)值。)=20然后%&GT;
&LT;一href=\"friends-of-mfm-record-order-modify.asp\"><%=(rsMenuList.Fields.Item(\"SubMenuName\").Value)%></a>
&LT;%否则%GT;
&LT;一href=\"record-order-modify.asp?smID=<%=(rsMenuList.Fields.Item(\"SubMenuID\").Value)%>\"><%=(rsMenuList.Fields.Item(\"SubMenuName\").Value)%></a>
&LT;%结束如果%GT;
&LT; /李&GT;
&LT;%
Repeat_MenuList__index = Repeat_MenuList__index + 1
Repeat_MenuList__numRows = Repeat_MenuList__numRows-1
rsMenuList.MoveNext()
WEND
%GT;
&LT; / UL&GT;
&LT; /一旁&GT;
&所述;! - /除 - &GT;&LT;! - 文章 - &GT;
&lt;物品&GT;
&LT;%IF Request.ServerVariables(QUERY_STRING)&LT;&GT; 那就%&GT;
&LT; H3&GT;&LT;跨度风格=FONT-SIZE:小&GT;订单/重新排序记录:LT; / SPAN&GT;&LT;%=(rsContent.Fields.Item(SubMenuName)值)% &GT;&LT; / H3 GT&;
&LT;%
昏暗的计数器
而((rptContent__numRows&LT;&GT; 0)和(非rsContent.EOF))
计数器=计数器+ 1
%GT;
&LT;形式的行动=创纪录的订单modify.asp的方法=后级=recordPosition&GT;
&LT;表格的宽度=100%&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =ContentTitle colspan=\"2\"><h2><%=(rsContent.Fields.Item(\"ContentTitle\").Value)%></h2><input类型=隐藏值=&LT;%=(rsContent.Fields.Item(内容识别。)值)%GT; NAME =内容识别&LT;%=计数器%GT;&GT;&LT; / TD&GT;
&LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =contentData内容&GT;&LT;%
昏暗的TMP
TMP = rsContent.Fields.Item(contentData内容)。价值
%GT;
&LT;%= LEFT(TMP,INSTR((TMP&安培),)。。)%GT; ..
&LT; / TD&GT;
&LT;%IF(ISNULL(rsContent.Fields.Item(ContentImage)值)。)然后%GT;
&LT; TD WIDTH =140ALIGN =中心VALIGN =顶NAME =ContentImage&GT;&LT; IMG SRC =../图像/ system_images /红x.png&GT;&LT; / TD&GT ;
&LT;%ELSE%GT;
&LT; TD WIDTH =140ALIGN =中心VALIGN =顶NAME =ContentImage&GT;&LT; DIV CLASS =nailthumb容器&GT;
&所述;! - 缩图容器 - &GT;
&所述; IMG SRC =&下;(%)=(rsContent.Fields.Item(ContentImage)值。)%&gt;中与GT; &LT; / DIV&GT;&LT; / TD&GT;
&LT;%END IF%GT;
&LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =left&GT;&LT;标签&gt;当前记录位置:其中,小班=棕色的风格=TEXT-family:宋体&GT;(您可以在此处更改)LT; /小&GT;&LT ; /标签&gt;&安培; NBSP;&安培; NBSP;&LT;输入类型=文本名称=PositionNumber&LT;%=计数器%GT;的tabindex =&LT;%=计数器%GT;值=&LT;%=(rsContent.Fields.Item(PositionNumber。)值)%GT;&GT;&LT; / TD&GT;
&LT; / TR&GT;
&LT; /表&gt;
&LT;小时&GT;
&LT;%
rptContent__index = rptContent__index + 1
rptContent__numRows = rptContent__numRows-1
rsContent.MoveNext()
WEND
%GT;
&LT;表ALIGN =中心类=positionButtons&GT;
&所述; TR&GT;
&LT; TD WIDTH =50%对齐=正确&GT;&LT;输入名称=提交类型=提交值=更新位置的tabindex =&LT;%=计数器%GT;&GT;&LT ; / TD&GT;
&LT; TD WIDTH =50%align =left&GT;&LT;输入名称=复位TYPE =复位值=复位所有更改的tabindex =&LT;%=计数器%GT;&GT; &LT; / TD&GT;
&LT; / TR&GT;
&LT; /表&gt;
&LT;输入类型=隐藏名称=行动值=更新&GT;
&LT;输入类型=隐藏的名字=计数器VALUE =&LT;%=计数器%GT;&GT;
&LT; /表及GT;
&LT;%ELSE%GT;
&LT; H3&GT;选择的列表使用左侧菜单上点/重新排序&LT; / H3 GT&;
&LT;%END IF%GT;
&LT; /条&GT;
&LT;! - /条 - &GT;&LT;脚本类型=文/ JavaScript的&GT;
jQuery的(文件)。就绪(函数(){
。jQuery的('。nailthumb容器')nailthumb({宽度:125,高度:125,fitDirection:顶部中心'});
});
&LT; / SCRIPT&GT;&LT; / DIV&GT;
&LT;! - / pageContent - &GT;&LT; DIV CLASS =推&GT;&LT; / DIV&GT;
&LT; / DIV&GT;
&所述;! - #wrapper指定 - &GT;&LT;页脚类=innerWidth&GT;
&LT;! - #include文件=包括/ footer.asp - &GT;
&LT; /页脚&GT;&LT; /身体GT;
&LT; / HTML&GT;
&LT;%
rsCharityDetails.Close()
设置rsCharityDetails =无
%GT;
&LT;%
rsNavBar.Close()
设置rsNavBar =什么
%GT;
&LT;%
rsContent.Close()
设置rsContent =什么
%GT;
&LT;%
rsMenuList.Close()
设置rsMenuList =什么
%GT;
&LT;%
rsHeaderImage.Close()
设置rsHeaderImage =什么
%GT;
由于提出的要求阿连德,这里的生成表单code。
&LT;形式的行动=创纪录的订单modify.asp的方法=后级=recordPosition&GT; &LT;表格的宽度=100%&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =ContentTitle合并单元格=2&GT;&LT; H2&GT;投资于人与环境&LT; / H&GT;&LT;输入类型=隐藏值= 15NAME =ContentID1&GT;&LT; / TD&GT;
&LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =contentData内容&GT;&LT; P&GT;马达加斯加是一个环境热点...
&LT; / TD&GT; &LT; TD WIDTH =140ALIGN =中心VALIGN =顶NAME =ContentImage&GT;&LT; DIV CLASS =nailthumb容器&GT;
&所述;! - 缩图容器 - &GT;
&LT; IMG SRC =/图像/帧的图像/ MFM-网站 - (26).JPG&GT; &LT; / DIV&GT;&LT; / TD&GT; &LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =left&GT;&LT;标签&gt;当前记录位置:其中,小班=棕色的风格=TEXT-family:宋体&GT;(您可以在此处更改)LT; /小&GT;&LT ; /标签&gt;&安培; NBSP;&安培; NBSP;&LT;输入类型=文本名称=PositionNumber1的tabindex =1值=1&GT;&LT; / TD&GT;
&LT; / TR&GT;
&LT; /表&gt;
&LT;小时&GT; &LT;表格的宽度=100%&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =ContentTitle合并单元格=2&GT;&LT; H2&gt;在下一代&LT; / H&GT;&LT;输入类型=隐藏值=16的名字=ContentID2&GT;&LT; / TD&GT;
&LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =contentData内容&GT;&LT; P&GT;教学马达加斯加孩子尊重和培养他们的环境,是马达加斯加的生物多样性的生存至关重要...
&LT; / TD&GT; &LT; TD WIDTH =140ALIGN =中心VALIGN =顶NAME =ContentImage&GT;&LT; DIV CLASS =nailthumb容器&GT;
&所述;! - 缩图容器 - &GT;
&LT; IMG SRC =/图像/帧的图像/ MFM-网站 - (292).JPG&GT; &LT; / DIV&GT;&LT; / TD&GT; &LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =left&GT;&LT;标签&gt;当前记录位置:其中,小班=棕色的风格=TEXT-family:宋体&GT;(您可以在此处更改)LT; /小&GT;&LT ; /标签&gt;&安培; NBSP;&安培; NBSP;&LT;输入类型=文本名称=PositionNumber2的tabindex =2VALUE =2&GT;&LT; / TD&GT;
&LT; / TR&GT;
&LT; /表&gt;
&LT;小时&GT; &LT;表格的宽度=100%&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =ContentTitle合并单元格=2&GT;&LT; H2&GT;承认我们的工作与LT; / H&GT;&LT;输入类型=隐藏值=17 NAME =ContentID3&GT;&LT; / TD&GT;
&LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =contentData内容&GT;&LT; P&GT;我们超过20年的工作有73个村庄周围Betampona储备最近获得认可在东大学举行的国际会议安格利亚...
&LT; / TD&GT; &LT; TD WIDTH =140ALIGN =中心VALIGN =顶NAME =ContentImage&GT;&LT; DIV CLASS =nailthumb容器&GT;
&所述;! - 缩图容器 - &GT;
&LT; IMG SRC =/图像/帧的图像/ MFM-网站 - (56).JPG&GT; &LT; / DIV&GT;&LT; / TD&GT; &LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =left&GT;&LT;标签&gt;当前记录位置:其中,小班=棕色的风格=TEXT-family:宋体&GT;(您可以在此处更改)LT; /小&GT;&LT ; /标签&gt;&安培; NBSP;&安培; NBSP;&LT;输入类型=文本名称=PositionNumber3的tabindex =3值=3&GT;&LT; / TD&GT;
&LT; / TR&GT;
&LT; /表&gt;
&LT;小时&GT; &LT;表格的宽度=100%&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =ContentTitle合并单元格=2&GT;&LT; H2&GT; / H&GT;通过增加森林&LT增加值&LT;输入类型=隐藏值=18 NAME =ContentID4&GT;&LT; / TD&GT;
&LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =leftVALIGN =顶NAME =contentData内容&GT;&LT; P&GT;经常以保护林老的最好办法就是种植新...
&LT; / TD&GT; &LT; TD WIDTH =140ALIGN =中心VALIGN =顶NAME =ContentImage&GT;&LT; DIV CLASS =nailthumb容器&GT;
&所述;! - 缩图容器 - &GT;
&LT; IMG SRC =/图像/帧的图像/ MFM-网站 - (217).JPG&GT; &LT; / DIV&GT;&LT; / TD&GT; &LT; / TR&GT;
&所述; TR&GT;
&LT; TD align =left&GT;&LT;标签&gt;当前记录位置:其中,小班=棕色的风格=TEXT-family:宋体&GT;(您可以在此处更改)LT; /小&GT;&LT ; /标签&gt;&安培; NBSP;&安培; NBSP;&LT;输入类型=文本名称=PositionNumber4的tabindex =4值=4&GT;&LT; / TD&GT;
&LT; / TR&GT;
&LT; /表&gt;
&LT;小时&GT;&LT;表ALIGN =中心类=positionButtons&GT;
&所述; TR&GT;
&LT; TD WIDTH =50%对齐=正确&GT;&LT;输入名称=提交类型=提交值=更新位置的tabindex =4&GT;&LT; / TD&GT;
&LT; TD WIDTH =50%align =left&GT;&LT;输入名称=复位TYPE =复位值=复位所有更改的tabindex =4&GT;&LT; / TD&GT;
&LT; / TR&GT;
&LT; /表&gt;
&LT;输入类型=隐藏名称=行动值=更新&GT;
&LT;输入类型=隐藏的名字=计数器值=4&GT;
&LT; /表及GT;
让我们假设你有表所示(请注意所有的输入具有相同的类):
&LT;表ID =myForm会的方法=POST行动someUrl&GT;
&LT;输入类型=文本级=recordPosition&GT;&LT; /输入&GT;
&LT;输入类型=文本级=recordPosition&GT;&LT; /输入&GT;
&LT;输入类型=文本级=recordPosition&GT;&LT; /输入&GT;
&LT;输入类型=文本级=recordPosition&GT;&LT; /输入&GT;
&LT; /表及GT;
您可以用jQuery像这样做的:
$(文件)。就绪(函数(){ $(。recordPosition)。在(模糊,函数(){
VAR allFieldsForOrder = $('。recordPosition');
变种数= 0;
变种I = 0
//console.log(allFieldsForOrder.length);
而((ⅰ&下; allFieldsForOrder.length)及及(计数2)){
如果($(allFieldsForOrder [I])。VAL()=== $(本).VAL())
{
算上++
}
我++;
} 如果(计数== 2){
警报(A重复值);返回false;}
});
});
有关你贴,你可以使用这个HTML:
的通知我不存储重复值的位置。
$(文件)。就绪(函数(){
//console.log($(\"input[type='text'][name^='PositionNumber'\").length);
$(输入[类型=文本] [^名字='PositionNumber')。每个(函数(){
$(本)。在(模糊,函数(){ VAR allFieldsForOrder = $(输入[类型=文本] [^名字='PositionNumber');
变种数= 0;
变种I = 0 而((ⅰ&下; allFieldsForOrder.length)及及(计数2)){
如果($(allFieldsForOrder [I])。VAL()=== $(本).VAL())
{
算上++
}
我++;
} 如果(计数== 2){
警报(A重复值);
} });
});
});
为code以上,我们假设您要检查所有字段其中属性名以字符串PositionNumber启动
我稍后会尝试减少code,我觉得有来检查是否复制了RecordPosition的价值,但需要测试的一些想法的最短途径。
这将是您的解决方案(其中之一):
$(文件)。就绪(函数(){
$('形式')。在(提交,函数(){
变种tempArray = [];
$(输入[类型=文本] [^名字='PositionNumber')。每个(函数(){
tempArray.push($(本).VAL());
}); 变种I = 0;
VAR重复= FALSE;
VAR currentElement;
而((tempArray.length&GT = 0)及及(重复==假)){
//从数组中弹出出来
currentElement = tempArray.pop();
复制= tempArray.indexOf(currentElement) } //后,可以使用复制,以取消提交
如果(重复){
警报(重复值:+ currentElement);
返回false;
} });
});
我较短的版本:
$(文件)。就绪(函数(){
$('形式')。在(提交,函数(){
变种tempArray = [];
变种存在= 0;
$(输入[类型=文本] [^名字='PositionNumber')。每个(函数(){
存在= tempArray.indexOf($(本).VAL());
如果(存在&GT; = 0){
返回false; //打破循环
}
tempArray.push($(本).VAL());
}); //以后可以用存在,以检查是否复制和检索值,以取消提交
如果(存在&GT; = 0){
警报(重复值:+ tempArray [存在]);
}其他{
警报(没有重复值:);
} 返回false;
});
});
I have a web form for admin purposes where the user can change the order that a group of records is shown on a webpage.
For example: A table (tblStuff) in a database has three fields:
ContentID, Content, RecordPosition
The table has, say, four records:
1, Guess what, 1
2, More stuff, 2
3, Some stuff, 3
4, That's right, 4
The SQL code is:
SELECT * FROM tblStuff ORDER BY RecordPosition ASC
The user can use the form to change the RecordPosition number so that the order can read:
3, Some stuff, 1
2, More stuff, 2
1, Guess what, 3
4, That's right, 4
So... How can I validate the form so that the same number isn't entered twice into the RecordPosition field?
Hope this makes sense.
Here's the whole page
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include virtual="/Connections/ENG.asp" -->
<%
' *** Restrict Access To Page: Grant or deny access to this page
MM_authorizedUsers=""
MM_authFailedURL="../default.asp"
MM_grantAccess=false
If Session("MM_Username") <> "" Then
If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
(InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
MM_grantAccess = true
End If
End If
If Not MM_grantAccess Then
MM_qsChar = "?"
If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
MM_referrer = Request.ServerVariables("URL")
if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
Response.Redirect(MM_authFailedURL)
End If
%>
<%
If Request.Form("action")="update" Then
'Set variables for update
Dim updateSQL, i
Dim cContentID, cPositionNumber
'Loop through records on screen and update
For i = 1 To fFormat(Request.Form("counter"))
'Create the proper field names to reference on the form
cContentID = "ContentID" & CStr(i)
cPositionNumber = "PositionNumber" & CStr(i)
'Create the update sql statement
updateSQL = "UPDATE tblContent SET PositionNumber=" & fFormat(Request.Form(cPositionNumber)) & " WHERE ContentID=" & fFormat(Request.Form(cContentID))
'Run the sql statement
Call sRunSQL(updateSQL)
Next
'Refresh page
Response.Redirect("record-order-modify-updated.asp")
End If
Function fFormat(vText)
fFormat = Replace(vText, "'", "''")
End Function
Sub sRunSQL(vSQL)
set cExecute = Server.CreateObject("ADODB.Command")
With cExecute
.ActiveConnection = MM_ENG_STRING
.CommandText = vSQL
.CommandType = 1
.CommandTimeout = 0
.Prepared = true
.Execute()
End With
End Sub
%>
<%
Dim rsCharityDetails
Dim rsCharityDetails_cmd
Dim rsCharityDetails_numRows
Set rsCharityDetails_cmd = Server.CreateObject ("ADODB.Command")
rsCharityDetails_cmd.ActiveConnection = MM_ENG_STRING
rsCharityDetails_cmd.CommandText = "SELECT * FROM tblCharityDetails"
rsCharityDetails_cmd.Prepared = true
Set rsCharityDetails = rsCharityDetails_cmd.Execute
rsCharityDetails_numRows = 0
%>
<%
Dim rsNavBar
Dim rsNavBar_cmd
Dim rsNavBar_numRows
Set rsNavBar_cmd = Server.CreateObject ("ADODB.Command")
rsNavBar_cmd.ActiveConnection = MM_ENG_STRING
rsNavBar_cmd.CommandText = "SELECT * FROM tblMainMenu WHERE MainMenuID <6 OR MainMenuID >7"
rsNavBar_cmd.Prepared = true
Set rsNavBar = rsNavBar_cmd.Execute
rsNavBar_numRows = 0
%>
<%
Dim rsContent__smID
rsContent__smID = "1"
If (Request.QueryString("smID") <> "") Then
rsContent__smID = Request.QueryString("smID")
End If
%>
<%
Dim rsContent
Dim rsContent_cmd
Dim rsContent_numRows
Set rsContent_cmd = Server.CreateObject ("ADODB.Command")
rsContent_cmd.ActiveConnection = MM_ENG_STRING
rsContent_cmd.CommandText = "SELECT tblContent.*, tblMainMenu.MainMenuName, tblSubMenu.SubMenuName, tblSubMenu.SubMenuID FROM (tblContent LEFT JOIN tblMainMenu ON tblContent.MainMenuID = tblMainMenu.MainMenuID) LEFT JOIN tblSubMenu ON tblContent.SubMenuID = tblSubMenu.SubMenuID WHERE tblContent.SubMenuID = ? AND tblContent.DisplayRecord =1 ORDER BY tblContent.PositionNumber"
rsContent_cmd.Prepared = true
rsContent_cmd.Parameters.Append rsContent_cmd.CreateParameter("param1", 5, 1, -1, rsContent__smID) ' adDouble
Set rsContent = rsContent_cmd.Execute
rsContent_numRows = 0
%>
<%
Dim rsMenuList
Dim rsMenuList_cmd
Dim rsMenuList_numRows
Set rsMenuList_cmd = Server.CreateObject ("ADODB.Command")
rsMenuList_cmd.ActiveConnection = MM_ENG_STRING
rsMenuList_cmd.CommandText = "SELECT tblMainMenu.MainMenuID, tblMainMenu.MainMenuName, tblSubMenu.SubMenuID, tblSubMenu.SubMenuName FROM tblMainMenu INNER JOIN tblSubMenu ON tblMainMenu.MainMenuID = tblSubMenu.MainMenuID WHERE tblSubMenu.SubMenuID <> 6 AND tblSubMenu.SubMenuID <16 OR tblSubMenu.SubMenuID >19"
rsMenuList_cmd.Prepared = true
Set rsMenuList = rsMenuList_cmd.Execute
rsMenuList_numRows = 0
%>
<%
Dim rsHeaderImage
Dim rsHeaderImage_cmd
Dim rsHeaderImage_numRows
Set rsHeaderImage_cmd = Server.CreateObject ("ADODB.Command")
rsHeaderImage_cmd.ActiveConnection = MM_ENG_STRING
rsHeaderImage_cmd.CommandText = "SELECT MainMenuImage, MainMenuID FROM tblMainMenu"
rsHeaderImage_cmd.Prepared = true
Set rsHeaderImage = rsHeaderImage_cmd.Execute
rsHeaderImage_numRows = 0
%>
<%
Dim navBar__numRows
Dim navBar__index
navBar__numRows = -1
navBar__index = 0
rsNavBar_numRows = rsNavBar_numRows + navBar__numRows
%>
<%
Dim rptContent__numRows
Dim rptContent__index
rptContent__numRows = -1
rptContent__index = 0
rsContent_numRows = rsContent_numRows + rptContent__numRows
%>
<%
Dim Repeat_MenuList__numRows
Dim Repeat_MenuList__index
Repeat_MenuList__numRows = -1
Repeat_MenuList__index = 0
rsMenuList_numRows = rsMenuList_numRows + Repeat_MenuList__numRows
%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="iso-8859-1">
<!-- disable iPhone inital scale -->
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<title><%=(rsCharityDetails.Fields.Item("CharityName").Value)%> | English Website Administration</title>
<!-- main css -->
<link href="../../scripts/mfm-standard-stylesheet.css" rel="stylesheet" type="text/css">
<!--[if lt IE 9]>
<link href="../scripts/mfm-standard-stylesheet_ie.css" rel="stylesheet" type="text/css">
<![endif]-->
<!-- Admin css -->
<link href="../scripts/mfm-admin-stylesheet.css" rel="stylesheet" type="text/css">
<script src="../../scripts/jquery-1.7.2.min.js"></script>
<!-- jQuery NailThumb Plugin - any image to any thumbnail Examples and documentation at: http://www.garralab.com/nailthumb.php -->
<script src="../../scripts/jquery.nailthumb.1.1.js"></script>
<!-- Lightbox2 v2.51 by Lokesh Dhakar For more information, visit: http://lokeshdhakar.com/projects/lightbox2/ -->
<script src="../../scripts/lightbox.js"></script>
<!-- Lightbox css -->
<link href="../../scripts/lightbox.css" rel="stylesheet" type="text/css" media="screen" />
<script src="../tiny_mce/tiny_mce.js"></script>
<script src="../tiny_mce/tiny-mce-mfm.js"></script>
<!-- html5.js for IE less than 9 -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- css3-mediaqueries.js for IE less than 9 -->
<!--[if lt IE 9]>
<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->
</head>
<body id="other">
<div id="wrapper">
<header class="innerWidth">
<!--#include file="includes/header-modify-record.asp" -->
</header>
<nav class="innerWidth">
<!--#include file="includes/navbar-modify-record.asp" -->
</nav>
<!-- pageContent -->
<div id="content" class="innerWidth">
<!-- Aside -->
<aside>
<h3>Record Order</h3>
<ul>
<%
Dim txtOldHeading
txtOldHeading = ""
While ((Repeat_MenuList__numRows <> 0) AND (NOT rsMenuList.EOF))
If txtOldHeading = rsMenuList.Fields.Item("MainMenuName").Value Then
Else
txtOldHeading = rsMenuList.Fields.Item("MainMenuName").Value
%>
<li class="menuHeading"><%=(rsMenuList.Fields.Item("MainMenuName").Value)%></li>
<%
END IF
%>
<li class="menuList">
<% If (rsMenuList.Fields.Item("SubMenuID").Value) = "3" Then %>
<a href="our-development-partners-record-order-modify.asp"><%=(rsMenuList.Fields.Item("SubMenuName").Value)%></a>
<% ElseIf (rsMenuList.Fields.Item("SubMenuID").Value) = "15" Then %>
<a href="shop-record-order-modify.asp"><%=(rsMenuList.Fields.Item("SubMenuName").Value)%></a>
<% ElseIf (rsMenuList.Fields.Item("SubMenuID").Value) = "20" Then %>
<a href="friends-of-mfm-record-order-modify.asp"><%=(rsMenuList.Fields.Item("SubMenuName").Value)%></a>
<% Else %>
<a href="record-order-modify.asp?smID=<%=(rsMenuList.Fields.Item("SubMenuID").Value)%>"><%=(rsMenuList.Fields.Item("SubMenuName").Value)%></a>
<% End If %>
</li>
<%
Repeat_MenuList__index=Repeat_MenuList__index+1
Repeat_MenuList__numRows=Repeat_MenuList__numRows-1
rsMenuList.MoveNext()
Wend
%>
</ul>
</aside>
<!-- /Aside -->
<!-- Article -->
<article>
<% IF Request.ServerVariables("QUERY_STRING") <> "" THEN %>
<h3><span style="font-size:small">Order/Re-order records for: </span><%=(rsContent.Fields.Item("SubMenuName").Value)%></h3>
<%
Dim counter
While ((rptContent__numRows <> 0) AND (NOT rsContent.EOF))
counter = counter + 1
%>
<form action="record-order-modify.asp" method="post" class="recordPosition">
<table width="100%">
<tr>
<td align="left" valign="top" name="ContentTitle" colspan="2"><h2><%=(rsContent.Fields.Item("ContentTitle").Value)%></h2><input type="hidden" value="<%=(rsContent.Fields.Item("ContentID").Value)%>" name="ContentID<%=counter%>"></td>
</tr>
<tr>
<td align="left" valign="top" name="ContentData"><%
Dim tmp
tmp = rsContent.Fields.Item("ContentData").Value
%>
<% =LEFT(tmp, INSTR((tmp & "."), ".")) %>..
</td>
<% IF (IsNull(rsContent.Fields.Item("ContentImage").Value)) THEN %>
<td width="140" align="center" valign="top" name="ContentImage"><img src="../images/system_images/red-x.png"></td>
<% ELSE %>
<td width="140" align="center" valign="top" name="ContentImage"><div class="nailthumb-container">
<!-- Thumbnail Container -->
<img src="<%=(rsContent.Fields.Item("ContentImage").Value)%>"> </div></td>
<% END IF %>
</tr>
<tr>
<td align="left"><label>Current Record Position: <small class="brown" style="text-transform:none">(You may change it here)</small></label> <input type="text" name="PositionNumber<%=counter%>" tabindex="<%=counter%>" value="<%=(rsContent.Fields.Item("PositionNumber").Value)%>"></td>
</tr>
</table>
<hr>
<%
rptContent__index=rptContent__index+1
rptContent__numRows=rptContent__numRows-1
rsContent.MoveNext()
Wend
%>
<table align="center" class="positionButtons">
<tr>
<td width="50%" align="right"><input name="Submit" type="submit" value="Update Positions" tabindex="<%=counter%>"></td>
<td width="50%" align="left"><input name="Reset" type="reset" value="Reset All Changes" tabindex="<%=counter%>"></td>
</tr>
</table>
<input type="hidden" name="action" value="update">
<input type="hidden" name="counter" value="<%=counter%>">
</form>
<% ELSE %>
<h3>Select a listing to order/re-order using the list on the left.</h3>
<% END IF %>
</article>
<!-- /Article -->
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery('.nailthumb-container').nailthumb({width:125,height:125,fitDirection:'top center'});
});
</script>
</div>
<!-- /pageContent -->
<div class="push"></div>
</div>
<!-- #wrapper -->
<footer class="innerWidth">
<!--#include file="includes/footer.asp" -->
</footer>
</body>
</html>
<%
rsCharityDetails.Close()
Set rsCharityDetails = Nothing
%>
<%
rsNavBar.Close()
Set rsNavBar = Nothing
%>
<%
rsContent.Close()
Set rsContent = Nothing
%>
<%
rsMenuList.Close()
Set rsMenuList = Nothing
%>
<%
rsHeaderImage.Close()
Set rsHeaderImage = Nothing
%>
As requested by Allende, here's the generated form code.
<form action="record-order-modify.asp" method="post" class="recordPosition">
<table width="100%">
<tr>
<td align="left" valign="top" name="ContentTitle" colspan="2"><h2>Investing in people and the environment</h2><input type="hidden" value="15" name="ContentID1"></td>
</tr>
<tr>
<td align="left" valign="top" name="ContentData"><p>Madagascar is an environmental hotspot...
</td>
<td width="140" align="center" valign="top" name="ContentImage"><div class="nailthumb-container">
<!-- Thumbnail Container -->
<img src="/images/framed-images/mfm-website-(26).jpg"> </div></td>
</tr>
<tr>
<td align="left"><label>Current Record Position: <small class="brown" style="text-transform:none">(You may change it here)</small></label> <input type="text" name="PositionNumber1" tabindex="1" value="1"></td>
</tr>
</table>
<hr>
<table width="100%">
<tr>
<td align="left" valign="top" name="ContentTitle" colspan="2"><h2>The next generation</h2><input type="hidden" value="16" name="ContentID2"></td>
</tr>
<tr>
<td align="left" valign="top" name="ContentData"><p>Teaching Malagasy children to respect and nurture their environment is critical to the survival of Madagascar's biodiversity...
</td>
<td width="140" align="center" valign="top" name="ContentImage"><div class="nailthumb-container">
<!-- Thumbnail Container -->
<img src="/images/framed-images/mfm-website-(292).jpg"> </div></td>
</tr>
<tr>
<td align="left"><label>Current Record Position: <small class="brown" style="text-transform:none">(You may change it here)</small></label> <input type="text" name="PositionNumber2" tabindex="2" value="2"></td>
</tr>
</table>
<hr>
<table width="100%">
<tr>
<td align="left" valign="top" name="ContentTitle" colspan="2"><h2>Recognition for our work</h2><input type="hidden" value="17" name="ContentID3"></td>
</tr>
<tr>
<td align="left" valign="top" name="ContentData"><p>Our work over 2 decades with 73 villages surrounding the Reserve of Betampona recently gained recognition at an international conference held at the University of East Anglia...
</td>
<td width="140" align="center" valign="top" name="ContentImage"><div class="nailthumb-container">
<!-- Thumbnail Container -->
<img src="/images/framed-images/mfm-website-(56).jpg"> </div></td>
</tr>
<tr>
<td align="left"><label>Current Record Position: <small class="brown" style="text-transform:none">(You may change it here)</small></label> <input type="text" name="PositionNumber3" tabindex="3" value="3"></td>
</tr>
</table>
<hr>
<table width="100%">
<tr>
<td align="left" valign="top" name="ContentTitle" colspan="2"><h2>Adding value by adding forests</h2><input type="hidden" value="18" name="ContentID4"></td>
</tr>
<tr>
<td align="left" valign="top" name="ContentData"><p>Often the best way to protect an old forest is to plant a new one...
</td>
<td width="140" align="center" valign="top" name="ContentImage"><div class="nailthumb-container">
<!-- Thumbnail Container -->
<img src="/images/framed-images/mfm-website-(217).jpg"> </div></td>
</tr>
<tr>
<td align="left"><label>Current Record Position: <small class="brown" style="text-transform:none">(You may change it here)</small></label> <input type="text" name="PositionNumber4" tabindex="4" value="4"></td>
</tr>
</table>
<hr>
<table align="center" class="positionButtons">
<tr>
<td width="50%" align="right"><input name="Submit" type="submit" value="Update Positions" tabindex="4"></td>
<td width="50%" align="left"><input name="Reset" type="reset" value="Reset All Changes" tabindex="4"></td>
</tr>
</table>
<input type="hidden" name="action" value="update">
<input type="hidden" name="counter" value="4">
</form>
Let's suppose you have form like this (notice all the inputs has the same class):
<form id="myForm" method="POST" action"someUrl">
<input type="text" class="recordPosition"></input>
<input type="text" class="recordPosition"></input>
<input type="text" class="recordPosition"></input>
<input type="text" class="recordPosition"></input>
</form>
You could do with jQuery something like this:
$(document).ready(function(){
$(".recordPosition").on("blur", function(){
var allFieldsForOrder = $('.recordPosition');
var count = 0;
var i=0
//console.log(allFieldsForOrder.length );
while((i<allFieldsForOrder.length) && (count < 2)){
if ($(allFieldsForOrder[i]).val()===$(this).val())
{
count++
}
i++;
}
if (count==2){
alert("A duplicated value"); return false;}
});
});
For the html you posted you can use this: Notice I don't store the position of the duplicated the value.
$(document).ready(function(){
//console.log($("input[type='text'][name^='PositionNumber'").length);
$("input[type='text'][name^='PositionNumber'").each(function(){
$(this).on("blur", function(){
var allFieldsForOrder = $("input[type='text'][name^='PositionNumber'");
var count = 0;
var i=0
while((i<allFieldsForOrder.length) && (count < 2)){
if ($(allFieldsForOrder[i]).val()===$(this).val())
{
count++
}
i++;
}
if (count==2){
alert("A duplicated value");
}
});
});
});
For the code above we assume you want to check for all the fields where the attribute name starts with the string "PositionNumber"
I will try to reduce the code later, I think there's a shortest way to check if is duplicated the "RecordPosition" value, but need to test some ideas.
This will be your solution (one of them):
$(document).ready(function(){
$('form').on("submit",function(){
var tempArray=[];
$("input[type='text'][name^='PositionNumber'").each(function(){
tempArray.push($(this).val());
});
var i=0;
var duplicated=false;
var currentElement;
while((tempArray.length >= 0) && (duplicated==false)){
//pop it out from the array
currentElement = tempArray.pop();
duplicated = tempArray.indexOf(currentElement)
}
//after you can use "duplicated" to cancel the submit
if (duplicated){
alert("duplicated value:" + currentElement);
return false;
}
});
});
I shorter version:
$(document).ready(function(){
$('form').on("submit",function(){
var tempArray=[];
var exists=0;
$("input[type='text'][name^='PositionNumber'").each(function(){
exists = tempArray.indexOf($(this).val());
if (exists>=0){
return false;//break the loop
}
tempArray.push($(this).val());
});
//after you can use "exist" to check if duplicated and retrieve the value to cancel the submit
if (exists>=0){
alert("duplicated value:" + tempArray[exists]);
} else{
alert("no duplicated value:");
}
return false;
});
});
这篇关于如果在一个形式重复号产生错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!