`

JavaScript实用示例之根据其他字段对字段进行检查

阅读更多

 

在填写表单时,可能希望指定用户必须填写某些字段,然后才能提交表单。可以使用JavaScript检查某些或所有字段是否已经填写了。在这个示例中,使用了HTML、CSS和JavaScript通过红色的边框和黄色的内部颜色突出显示未填写的字段。检查在用户单击表单的Submit按钮时进行。

         也经常需要根据另一个字段对一个字段进行检查,尤其是在要求用户设置密码时。为了确保密码正确,希望用户输入密码两次,并确保两次的输入完全相同。此示例当检查无效时,无效的字段会显示红色的边框。

   密码检查示例的HTML

[html] view plaincopy
  1. <html xmlns="http://www.w3.org/1999/xhtml">  
  2. <head>  
  3.     <title>Password Check</title>  
  4.     <link type="text/css" rel="stylesheet" href="script01.css" />  
  5.     <script type="text/javascript" src="script01.js"></script>  
  6. </head>  
  7. <body>  
  8. <form action="#">  
  9.     <p><label for="userName">Your name: <input type="text" size="30" id="userName" class="reqd" /></label></p>  
  10.     <p><label for="passwd1">Choose a password: <input type="password" id="passwd1" class="reqd" /></label></p>  
  11.     <p><label for="passwd2">Verify password: <input type="password" id="passwd2" class="reqd passwd1" /></label></p>  
  12.     <p><input type="submit" value="Submit" /> <input type="reset" /></p>  
  13. </form>  
  14. </body>  
  15. </html>  


  表示为无效的表单元素设置样式的CSS

  1. body {  
  2.     color#000;  
  3.     background-color#FFF;  
  4. }  
  5.   
  6. input.invalid {  
  7.     background-color#FF9;  
  8.     border2px red inset;  
  9. }  
  10.   
  11. label.invalid {  
  12.     color#F00;  
  13.     font-weightbold;  
  14. }  


使用下面的脚本比较两个字段的值,检查它们是否匹配

[javascript] view plaincopy
  1. window.onload = initForms;  
  2.   
  3. function initForms() {  
  4.     for (var i=0; i< document.forms.length; i++) {  
  5.         document.forms[i].onsubmit = function() {return validForm();}  
  6.     }  
  7. }//这个函数遍历页面上的每个表单  
  8.   
  9. function validForm() {  
  10.     var allGood = true;  
  11.     var allTags = document.getElementsByTagName("*");  
  12. //星号让JavaScript返回一个包含页面上所有标签的数组。  
  13.     for (var i=0; i<allTags.length; i++) {  
  14.         if (!validTag(allTags[i])) {  
  15.             allGood = false;  
  16.         }  
  17.     }  
  18.     return allGood;  
  19. //返回allGood,以此表明是否应该继续提交表单  
  20.     function validTag(thisTag) {  
  21.         var outClass = "";  
  22.         var allClasses = thisTag.className.split(" ");  
  23.       
  24.         for (var j=0; j<allClasses.length; j++) {  
  25.             outClass += validBasedOnClass(allClasses[j]) + " ";  
  26.         }  
  27.       
  28.         thisTag.className = outClass;  
  29.       
  30.         if (outClass.indexOf("invalid") > -1) {  
  31.             thisTag.focus();  
  32.             if (thisTag.nodeName == "INPUT") {  
  33.                 thisTag.select();  
  34.             }  
  35.             return false;  
  36.         }  
  37.         return true;  
  38.           
  39.         function validBasedOnClass(thisClass) {  
  40.             var classBack = "";  
  41.           
  42.             switch(thisClass) {  
  43.                 case "":  
  44.                 case "invalid":  
  45.                     break;  
  46.                 case "reqd":  
  47.                     if (allGood && thisTag.value == "") {  
  48.                         classBack = "invalid ";  
  49.                     }  
  50.                     classBack += thisClass;  
  51.                     break;  
  52.                 default:  
  53.                     if (allGood && !crossCheck(thisTag,thisClass)) {  
  54.                         classBack = "invalid ";  
  55.                     }//现在要检查两个密码字段是否相同  
  56.                     classBack += thisClass;  
  57.             }  
  58.             return classBack;  
  59.         }  
  60.                   
  61.         function crossCheck(inTag,otherFieldID) {  
  62.             if (!document.getElementById(otherFieldID)) {  
  63.                 return false;  
  64.             }  
  65.             return (inTag.value == document.getElementById(otherFieldID).value);  
  66.         }  
  67.     }  
  68. }  

      document.forms[i].onsubmit = function() {return validForm();

      对每个表单,它为表单的onsubmit添加一个事件处理程序:对function(){return validForm();}的调用。这是另一个匿名函数,但是这一次它要执行一些操作:它返回true或false,告诉浏览器是否继续处理动作属性。当onsubmit处理程序返回false值时,表单就不会被传递回服务器。只有在返回true时,服务器才会收到表单(因此运行动作属性中存储的CGI)。

      if (outClass.indexOf("invalid") > -1) {

      在新的class属性中可能返回的值之一是单词invalid,所以要检查它。如果在新的类中找到了invalid,就说明有问题,因此执行对应的操作。

      thisTag.focus();

      如果这个表单字段可以获得焦点,那么希望将焦点放进这个字段,这一行就完成这个任务。这是让用户知道哪个字段有问题的一种方法。

      if (thisTag.nodeName == "INPUT") {thisTag.select();}

      判断当前查看的这个标签是<INOUT>标签吗?如果是,就选择它的值,让用户能够轻松的修改它。

      function crossCheck(inTag,otherFieldID) {

               if (!document.getElementById(otherFieldID))

                          {return false;}

                         return (inTag.value == document.getElementById(otherFieldID).value);

        }它接收当前标签和检查所针对的另一个字段id。在这个示例中,当前标签是passwd2<input>,另一个字段的id是passwd1。如果另一个字段不存在,就无法进行检查,这就说明有问题,所以函数返回false。否则,这两个字段都存在,所以可以比较它们的值:如果相同,就返回true,否则返回false。

更多信息请查看 java进阶网 http://www.javady.com

分享到:
评论

相关推荐

    基于JavaScript实现Json数据根据某个字段进行排序

    通过理解`sort()`方法的工作原理并结合自定义比较函数,我们可以有效地根据JSON数据的任意字段进行排序,无论是数字、字符串还是其他类型的数据。这在处理复杂数据结构时非常有用,尤其是在前端开发中处理用户界面...

    PPK谈javascript示例

    3. 每个验证函数(如`isRequired`、`isPattern`等)根据表单字段的类型和值进行相应的检查。 4. `isRequired`函数检查文本、textarea和选择框是否为空,单选按钮组是否有选中的选项。 这些验证函数可以根据需要扩展...

    js实现点击table表头字段,根据字段排序例子

    4. **排序数据**:根据字段名和排序顺序(升序或降序)对数据数组进行排序。可以使用JavaScript内置的`Array.prototype.sort`方法,提供一个比较函数来定义排序规则。 5. **重新渲染表格**:根据排序后的数据数组...

    C# 作的动态定义数据库字段

    然而,在某些场景下,用户可能希望在程序运行过程中根据需求添加、删除或修改这些字段。这可以通过使用元数据(Metadata)和反射(Reflection)来实现,C#提供了这些功能。 元数据是关于代码的信息,可以是类、接口...

    javascript入门基础示例

    从给定的文件信息来看,虽然标题和描述指向了JavaScript的基础示例,但实际内容却包含了一段ASP.NET页面的代码,其中嵌入了多个JavaScript函数。这些函数展示了JavaScript在网页上的基本应用,包括字符串操作、日期...

    sharepoint 列表自定义字段类型

    1. **使用**: 自定义字段类型可以像其他任何字段一样添加到SharePoint列表或库中,然后用户可以在列表项中看到并使用这些字段。 2. **部署**: 通常,自定义字段类型会作为SharePoint解决方案包(.wsp文件)的一部分...

    javaScript示例

    在这个"JavaScript示例"的压缩包中,包含了一系列与JavaScript事件相关的HTML文件和一个JavaScript源代码文件,这些都是JavaScript在网页中实现动态功能的关键元素。下面将详细解释这些文件所涉及的JavaScript知识点...

    javascript(经典 实用 n多例子大集合)

    6. **其他实用功能**:JavaScript还能实现页面动画、时间日期处理、拖放操作、网页定位(Geolocation API)、本地存储(localStorage和sessionStorage)、Web Workers进行后台计算,以及WebSocket实现双向通信等。...

    JavaScript - XHR实现短信验证码注册登录完整示例:JavaScript - XHR.js和附件说明

    JavaScript - XHR(XMLHttpRequest)是Web开发中的一个重要工具,用于在不刷新整个页面的情况下与服务器进行异步数据交换,这种技术通常被称为AJAX(Asynchronous JavaScript and XML),虽然现在XML已经不是数据...

    基于Javascript的开放数据库设计规范约定统一表名和字段设计源码

    "基于Javascript的开放数据库设计规范约定统一表名和字段设计源码"项目正是为了解决这个问题而提出的。该项目采用JavaScript作为基础,结合JSON和Markdown,为开发者提供了规范化的数据库设计方案。 首先,...

    JavaScript基础教程第8版

    6.4 根据其他字段对字段进行检查 109 6.5 标识有问题的字段 111 6.6 准备进行表单验证 113 6.7 处理单选按钮 117 6.8 用一个字段设置另一个字段 119 6.9 检验Zip编码 122 6.10 验证电子邮件地址 126 ...

    【JavaScript源代码】vue使用rules实现表单字段验证.docx

    `prop`属性是它的一个重要属性,用于关联`model`中的数据字段,这样在验证时就可以根据`prop`找到对应的值进行检查。例如: ```html 用户名称:" prop="userName"&gt; ``` 这里,`prop="userName"`与`data()`...

    使用JavaScript语言进行表单验证

    ### 使用JavaScript语言进行表单验证 #### JavaScript与表单验证的重要性 随着互联网技术的飞速发展,表单作为用户向服务器提交数据的主要方式之一,在现代Web应用中扮演着至关重要的角色。为了确保提交的数据准确...

    Microsoft Dynamics CRM Javascript

    尽管直接更改时间间隔的JavaScript代码示例未在文档中明确给出,但通常涉及对DOM(文档对象模型)的操作,或者利用CRM的Web资源开发自定义的JavaScript库来间接实现这一需求。 #### 结论 Microsoft Dynamics CRM与...

    使用ComboBox选择查看图层字段属性值.rar

    在这个"使用ComboBox选择查看图层字段属性值"的示例中,我们聚焦于如何利用ComboBox来交互式地查看地图图层中的不同字段及其对应的属性值。 ComboBox的主要功能是展示一系列的选项,用户可以从中选择一个,通常在...

    JS实现:数组中的json对象,按某个字段来进行字母排序.pdf

    本文将详细讲解如何使用JavaScript实现对数组中的JSON对象按某个字段进行字母排序,并提供一个具体的示例函数。 首先,我们要了解`Array.prototype.sort()`方法。这是JavaScript内置的数组排序方法,它接受一个可选...

    Jquery Validation实用示例及讲解

    2. **分组验证**:使用`groups`选项可以将多个输入字段作为一个组进行验证,所有字段都必须通过验证才能通过。 ```javascript $("#myForm").validate({ groups: { myGroup: "username password" }, ...

    微软示例数据库脚本

    - **索引创建**:为了提高查询性能,脚本可能会包含创建索引的语句,如对经常用于查询的字段建立索引,如CustomerID或ProductName。 - **视图和存储过程**:除了基本的表结构和数据,Northwind数据库可能还包括一些...

    教你一天玩转JavaScript(五)——使用JavaScript完成注册页面表单提示及校验

    每个输入元素都可以通过`id`属性进行唯一标识,方便JavaScript进行操作。 接下来是JavaScript的提示与验证部分。我们可以为每个输入元素添加`onfocus`和`onblur`事件监听器,分别在用户聚焦和离开输入框时触发。...

Global site tag (gtag.js) - Google Analytics