`
Nick_HF
  • 浏览: 8465 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
最近访客 更多访客>>
社区版块
存档分类
最新评论

多控件验证的一个解决办法

阅读更多
通常在注册表单或大型表单中对于各种控件需要做有效性判断,自己写了个通用的验证方法
具体如下

引入prototype.js框架

<script language="javascript">
//给text,password,radio,checkbox注册onclick事件
   Event.observe(document.body, 'click', function(event) {
   var elt = Event.element(event);
    if('text'==elt.type || 'password'==elt.type){
      $(elt).style.backgroundColor="";     //清空提示颜色
     }
  
    if('radio'==elt.type){
     var rds=document.getElementsByClassName('design'); //通过class进行组选择
      rds[0].style.backgroundColor="";
      rds[1].style.backgroundColor="";
      。。。。
     
    }
    if('checkbox'==elt.type){
      var chks=document.getElementsByClassName('chk');
      for(i=0;i<chks.length;i++){
      chks[i].style.backgroundColor="";
      }

    }
});

//为select注册onchange事件
    Event.observe(document.body, 'change', function(event) { //下拉列表清空
     var elt = Event.element(event);
     if("SELECT"==elt.tagName.toUpperCase()){
      $(elt).style.backgroundColor="";
     }
   
});


function sysAlert(){ //表单提交前的有效性验证
  
      var color="red";
  var numReq=["n1","n2","n3","nn"]; //需要验证是否为数字类型
 
  var inputReq=["t1","t2","t3","tn"];//文本框ids
  var selReq=["s1","s2","s3","sn"];//下拉框ids
 
 
//输入验证   
 
   for(i=0;i<inputReq.length;i++){  
if($F(inputReq[i])==""){
     alert("内容不允许为空");
     Field.focus(inputReq[i]);
     $(inputReq[i]).style.backgroundColor=color;
             return;
   }
  
}

//下拉框验证
  for(i=0;i<selReq.length;i++){
    if($(selReq[i]).options[0].selected){
     alert("至少选择一项");
     $(selReq[i]).style.backgroundColor=color;
             return;
    }

}

//单选验证
for(i=0;i<radioReq.length;i++){
  var radios =$("supForm").getInputs('radio',radioReq[i]); 
  if(!(radios[0].checked||radios[1].checked)){
       alert("至少选择一项");
       radios[0].style.backgroundColor=color;    
       Field.focus(radioReq[i]);
    
     return;
   }
  }


//复选验证
for(i=0;i<mulselReq.length;i++){
var chks = $("supForm").getInputs('checkbox',mulselReq[i]);
var flag=true;
  for(j=0;j<chks.length;j++){
  if(chks[j].checked){
  flag=false;
  break;
  }
}
  if(flag){
   chks[0].style.backgroundColor=color;
   alert("至少选择一项"); 
   return;
}

}


//数字
for(i=0;i<numReq.length;i++){
if($F(numReq[i])==""||isNaN($F(numReq[i]))){
alert("输入非数字");
Field.focus(numReq[i]);
   return;
}
}

  if (confirm("是否继续?")){
  $("supFormID").submit();
}
}  
分享到:
评论

相关推荐

    vc控件在IE8中不能调试的解决办法

    ### vc控件在IE8中不能调试的解决办法 #### 问题背景 在使用Visual C++(VC)开发Web浏览器中的ActiveX控件时,可能会遇到一个常见的问题:即在Internet Explorer 8(IE8)中无法进行有效的调试。这个问题主要是...

    安装ActiveX控件提示“Windows已经阻止此软件因为无法验证发行者”解决办法.pdf

    安装ActiveX控件提示“Windows已经阻止此软件因为无法验证发行者”解决办法.pdf

    JS表单验证与JS常见问题解决方案

    JavaScript,作为一种广泛应用于Web开发的脚本语言,其在处理用户交互、特别是表单验证方面起着至关重要的作用。在创建动态和响应式的网页时,JS表单验证是确保数据质量和用户输入有效性的关键环节。以下是一些关于...

    CGridCtrl控件中合并后的单元格在显示范围之外会陷入死循环的解决办法

    ### CGridCtrl 控件中合并后的单元格在显示范围之外会陷入死循环的解决办法 #### 背景介绍 在使用 CGridCtrl 控件进行界面设计时,开发者可能会遇到一个棘手的问题:当合并后的单元格位于当前显示范围之外时,控件...

    windows7无法使用active控件解决办法.doc

    针对上述问题,可以通过以下八个步骤来解决Windows7系统中ActiveX控件无法正常工作的问题: 1. **设置站点为可信任站点** 首先,打开Internet Explorer浏览器,并进入你希望使用ActiveX控件的网站。然后,点击右...

    解决PB的mdi窗口添加控件不能显示窗口的问题

    然而,有时在PB的MDI窗口中添加控件时,可能会遇到一个问题:新添加的控件在打开后被主窗口的控件遮挡,导致子窗口无法正常显示。这个问题可能会影响到用户的交互体验和程序功能的正常使用。针对"解决PB的MDI窗口...

    lodop Web打印控件 6.0和4.0两个版本有水印

    Lodop 6.0.1.2是该控件的一个较新版本,相较于4.0,它可能包含更多的优化和新特性。例如,6.0版本可能提升了打印速度,增强了对各种复杂打印需求的支持,包括支持更多种类的文档格式。此外,特别指出的是,6.0版本...

    chrome调用ocx完整解决方案

    以下是一个关于如何在Chrome中调用OCX控件的完整解决方案: 一、了解问题背景 Chrome本身并不支持直接调用ActiveX控件,因为它是基于Chromium引擎构建的,而Chromium对ActiveX的支持有限。但有一些工作流或应用...

    制作AXTIVE控件和客户端安装程序解决BS架构条码打印机问题(最新)

    制作AXTIVE控件和客户端安装程序解决BS架构条码打印机问题(最新),经过将近一个星期的努力,BS架构的条码打印问题终于解决了,测试通过。这中方法的优点是采取一种新的安装方式来绕过数字签名验证的问题,可以做到...

    JS获取填报扩展单元格控件的值的解决办法

    本文将详细介绍一种解决办法,帮助开发者有效地获取填报扩展单元格控件的值。 首先,我们要理解问题的核心。在填报预览模式下,如果控件(例如下拉框)被扩展,那么通过常规方法尝试获取值时,只能得到第一行的值,...

    解决OPCDAAuto.dll注册失败解决办法.zip

    OPCDAAuto.dll是OPC Data Access(OPC DA)的一部分,它是一个接口库,用于在工业自动化领域中实现应用程序之间的数据交换。OPC DA是一个标准接口,允许不同的硬件和软件供应商之间通信,确保不同系统间的数据兼容性...

    My97 DatePicker 4.0日期控件

    在网页开发中,日期选择控件是一个不可或缺的元素,它极大地提升了用户交互体验。My97 DatePicker 4.0 是一款广泛应用于各大网站的优秀日期选择插件,兼容Firefox、Internet Explorer以及Opera等主流浏览器。这款...

    框架式局部刷新最简单解决方案

    描述中提到“找了很多别人的解决办法,太烦琐2次开发难度大”,这可能指的是使用Ajax、jQuery或其他JavaScript库进行复杂交互的实现,这些方法虽然功能强大,但对于初学者或者对JavaScript不太熟悉的开发者来说,...

    NC系统无法登陆解决办法

    本文将详细介绍导致NC系统无法登录的原因以及相应的解决办法。 #### 二、检查浏览器版本 在尝试登录NC系统之前,请确保您使用的浏览器版本满足系统的要求。根据描述中的提示,NC系统推荐使用Internet Explorer 9...

    Net开发中常见问题及解决办法

    这实际上是Oracle 9.02i的一个已知问题,尤其是在NTFS分区上。解决方法是进入Oracle安装目录`Ora92`的属性,调整“Authenticated Users”的权限,先取消“Read and Execute”的勾,应用后再勾选,重启系统。当然,...

    BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)

    在本文中,我们将探讨一个常见的前端开发问题,即Bootstrap日期控件在火狐浏览器中模态框内无法正常工作的问题。这个问题主要表现为用户尝试选择时间下拉菜单时,菜单无法被点击,但在其他浏览器如Chrome中却能正常...

    数据库查询时间没有了时分秒的解决办法

    ### 数据库查询时间没有了时分秒的解决办法 在进行数据库操作时,有时会遇到一个令人困惑的问题:查询返回的时间字段中丢失了时分秒的信息,只显示日期部分。这种情况通常出现在特定环境下,比如使用Oracle数据库并...

    非IE浏览器实现IE功能.rar

    描述中提到的“IE Tab”是一个插件,允许用户在非IE浏览器如谷歌浏览器(Chrome)和火狐(Firefox)中模拟IE浏览器环境,以便运行那些依赖于IE特有功能或OCX控件的网页应用。 1. **什么是OCX控件**:OCX是微软推出...

    #net英文换行解决办法

    在开发Web应用程序时,尤其是在使用ASP.NET中的`GridView`控件展示数据时,可能会遇到一个常见的问题:当某列绑定的数据过长(尤其是英文数据)时,该列会在同一行内显示,导致页面宽度被拉伸得很宽,影响用户体验。...

    asp.net4.0框架下验证机制失效的原因及处理办法

    ***是一个流行的用于开发网络应用程序的框架,其中的请求验证机制是该框架的一个重要组成部分,它可以帮助开发者防止恶意用户的XSS(跨站脚本)攻击。不过,在*** 4.0框架中,开发者可能会遇到请求验证机制失效的...

Global site tag (gtag.js) - Google Analytics