65.9K
CodeProject 正在变化。 阅读更多。
Home

无需额外代码的客户端验证

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.86/5 (4投票s)

2006年6月5日

1分钟阅读

viewsIcon

39169

我们可以使用正则表达式验证 Web 表单,只需将正则表达式放在隐藏字段的值属性中,让生活更轻松。

引言

这是一个简单的 JavaScript 代码。通过使用此代码,我们可以使用正则表达式验证 Web 表单。它的优点是,您无需编写额外的代码,只需将适当的正则表达式放在隐藏字段的值属性中,让生活更轻松。

详细信息

其背后的想法是,要验证名为 "text1" 的控件,您需要添加两个隐藏输入字段。一个用于 验证,另一个用于控件 标题。验证字段的名称将是 "regex_text1",标题的名称将是 "caption_text1"

您的输入控件将根据您在 "regex_text1" 输入字段的值属性中编写的正则表达式进行验证。

您还需要做的一件事是,在用于提交的按钮单击时调用以下函数。

function ValidateForm()
{
     els=new Array();
     els=document.forms[1].elements;
     for(i=0; i<els.length; i++)
     {
  
         var regex="regex_" + els[i].name;
         if(els[regex]!=null)
         {  
                var regexValue=els[regex].value;
                var elValue=els[i].value;
                var re = new RegExp(regexValue);
                if(!elValue.match(re))
                {
                       var caption="caption_" + els[i].name;
                       var captionValue="字段"
                       if(els[caption]!=null)
                             captionValue=els[caption].value;
                       alert("无效 " + captionValue);
                       return;
                }
         }    
    
  
   
     }
     document.forms[1].submit();

您的 HTML 将如下所示。

<input type="text" name="txtSurname">
                <input type="hidden" name= "caption_txtSurname" value="姓氏">
                <input type="hidden" name= "regex_txtSurname" value="^[a-zA-Z]+[a-zA-Z ]*$">

<input type="text" name="txtPostCode">
                              <input type="hidden" name="regex_txtPostCode" value="^([0-9]+[0-9-]*[0-9]+)?$">
                <input type="hidden" name= "caption_txtPostCode" value="邮政编码">

<input  type="button" name="Submit" value="提交" onClick="javascript:ValidateForm()">

© . All rights reserved.