如果在一个形式重复号产生错误 [英] Generate an error if number is repeated in a form

查看:401
本文介绍了如果在一个形式重复号产生错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对管理目的的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))及WHE​​RE内容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 =其他>< D​​IV ID =包装>
<头类=innerWidth>
<! - #include文件=包含/头 - 修改 - record.asp - >
< /头><导航类=innerWidth>
<! - #include文件=包括/导航栏 - 修改 - record.asp - >
< / NAV>&所述;! - pageContent - >
< D​​IV 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; D​​IV 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; D​​IV 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; D​​IV 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; D​​IV 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; D​​IV 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; D​​IV 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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆