在填写表单时,可能希望指定用户必须填写某些字段,然后才能提交表单。可以使用JavaScript检查某些或所有字段是否已经填写了。在这个示例中,使用了HTML、CSS和JavaScript通过红色的边框和黄色的内部颜色突出显示未填写的字段。检查在用户单击表单的Submit按钮时进行。
也经常需要根据另一个字段对一个字段进行检查,尤其是在要求用户设置密码时。为了确保密码正确,希望用户输入密码两次,并确保两次的输入完全相同。此示例当检查无效时,无效的字段会显示红色的边框。
密码检查示例的HTML
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>Password Check</title>
- <link type="text/css" rel="stylesheet" href="script01.css" />
- <script type="text/javascript" src="script01.js"></script>
- </head>
- <body>
- <form action="#">
- <p><label for="userName">Your name: <input type="text" size="30" id="userName" class="reqd" /></label></p>
- <p><label for="passwd1">Choose a password: <input type="password" id="passwd1" class="reqd" /></label></p>
- <p><label for="passwd2">Verify password: <input type="password" id="passwd2" class="reqd passwd1" /></label></p>
- <p><input type="submit" value="Submit" /> <input type="reset" /></p>
- </form>
- </body>
- </html>
表示为无效的表单元素设置样式的CSS
- body {
- color: #000;
- background-color: #FFF;
- }
-
- input.invalid {
- background-color: #FF9;
- border: 2px red inset;
- }
-
- label.invalid {
- color: #F00;
- font-weight: bold;
- }
使用下面的脚本比较两个字段的值,检查它们是否匹配
- window.onload = initForms;
-
- function initForms() {
- for (var i=0; i< document.forms.length; i++) {
- document.forms[i].onsubmit = function() {return validForm();}
- }
- }
-
- function validForm() {
- var allGood = true;
- var allTags = document.getElementsByTagName("*");
-
- for (var i=0; i<allTags.length; i++) {
- if (!validTag(allTags[i])) {
- allGood = false;
- }
- }
- return allGood;
-
- function validTag(thisTag) {
- var outClass = "";
- var allClasses = thisTag.className.split(" ");
-
- for (var j=0; j<allClasses.length; j++) {
- outClass += validBasedOnClass(allClasses[j]) + " ";
- }
-
- thisTag.className = outClass;
-
- if (outClass.indexOf("invalid") > -1) {
- thisTag.focus();
- if (thisTag.nodeName == "INPUT") {
- thisTag.select();
- }
- return false;
- }
- return true;
-
- function validBasedOnClass(thisClass) {
- var classBack = "";
-
- switch(thisClass) {
- case "":
- case "invalid":
- break;
- case "reqd":
- if (allGood && thisTag.value == "") {
- classBack = "invalid ";
- }
- classBack += thisClass;
- break;
- default:
- if (allGood && !crossCheck(thisTag,thisClass)) {
- classBack = "invalid ";
- }
- classBack += thisClass;
- }
- return classBack;
- }
-
- function crossCheck(inTag,otherFieldID) {
- if (!document.getElementById(otherFieldID)) {
- return false;
- }
- return (inTag.value == document.getElementById(otherFieldID).value);
- }
- }
- }
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
分享到:
相关推荐
通过理解`sort()`方法的工作原理并结合自定义比较函数,我们可以有效地根据JSON数据的任意字段进行排序,无论是数字、字符串还是其他类型的数据。这在处理复杂数据结构时非常有用,尤其是在前端开发中处理用户界面...
3. 每个验证函数(如`isRequired`、`isPattern`等)根据表单字段的类型和值进行相应的检查。 4. `isRequired`函数检查文本、textarea和选择框是否为空,单选按钮组是否有选中的选项。 这些验证函数可以根据需要扩展...
4. **排序数据**:根据字段名和排序顺序(升序或降序)对数据数组进行排序。可以使用JavaScript内置的`Array.prototype.sort`方法,提供一个比较函数来定义排序规则。 5. **重新渲染表格**:根据排序后的数据数组...
然而,在某些场景下,用户可能希望在程序运行过程中根据需求添加、删除或修改这些字段。这可以通过使用元数据(Metadata)和反射(Reflection)来实现,C#提供了这些功能。 元数据是关于代码的信息,可以是类、接口...
从给定的文件信息来看,虽然标题和描述指向了JavaScript的基础示例,但实际内容却包含了一段ASP.NET页面的代码,其中嵌入了多个JavaScript函数。这些函数展示了JavaScript在网页上的基本应用,包括字符串操作、日期...
1. **使用**: 自定义字段类型可以像其他任何字段一样添加到SharePoint列表或库中,然后用户可以在列表项中看到并使用这些字段。 2. **部署**: 通常,自定义字段类型会作为SharePoint解决方案包(.wsp文件)的一部分...
在这个"JavaScript示例"的压缩包中,包含了一系列与JavaScript事件相关的HTML文件和一个JavaScript源代码文件,这些都是JavaScript在网页中实现动态功能的关键元素。下面将详细解释这些文件所涉及的JavaScript知识点...
6. **其他实用功能**:JavaScript还能实现页面动画、时间日期处理、拖放操作、网页定位(Geolocation API)、本地存储(localStorage和sessionStorage)、Web Workers进行后台计算,以及WebSocket实现双向通信等。...
JavaScript - XHR(XMLHttpRequest)是Web开发中的一个重要工具,用于在不刷新整个页面的情况下与服务器进行异步数据交换,这种技术通常被称为AJAX(Asynchronous JavaScript and XML),虽然现在XML已经不是数据...
"基于Javascript的开放数据库设计规范约定统一表名和字段设计源码"项目正是为了解决这个问题而提出的。该项目采用JavaScript作为基础,结合JSON和Markdown,为开发者提供了规范化的数据库设计方案。 首先,...
6.4 根据其他字段对字段进行检查 109 6.5 标识有问题的字段 111 6.6 准备进行表单验证 113 6.7 处理单选按钮 117 6.8 用一个字段设置另一个字段 119 6.9 检验Zip编码 122 6.10 验证电子邮件地址 126 ...
`prop`属性是它的一个重要属性,用于关联`model`中的数据字段,这样在验证时就可以根据`prop`找到对应的值进行检查。例如: ```html 用户名称:" prop="userName"> ``` 这里,`prop="userName"`与`data()`...
### 使用JavaScript语言进行表单验证 #### JavaScript与表单验证的重要性 随着互联网技术的飞速发展,表单作为用户向服务器提交数据的主要方式之一,在现代Web应用中扮演着至关重要的角色。为了确保提交的数据准确...
尽管直接更改时间间隔的JavaScript代码示例未在文档中明确给出,但通常涉及对DOM(文档对象模型)的操作,或者利用CRM的Web资源开发自定义的JavaScript库来间接实现这一需求。 #### 结论 Microsoft Dynamics CRM与...
在这个"使用ComboBox选择查看图层字段属性值"的示例中,我们聚焦于如何利用ComboBox来交互式地查看地图图层中的不同字段及其对应的属性值。 ComboBox的主要功能是展示一系列的选项,用户可以从中选择一个,通常在...
本文将详细讲解如何使用JavaScript实现对数组中的JSON对象按某个字段进行字母排序,并提供一个具体的示例函数。 首先,我们要了解`Array.prototype.sort()`方法。这是JavaScript内置的数组排序方法,它接受一个可选...
2. **分组验证**:使用`groups`选项可以将多个输入字段作为一个组进行验证,所有字段都必须通过验证才能通过。 ```javascript $("#myForm").validate({ groups: { myGroup: "username password" }, ...
- **索引创建**:为了提高查询性能,脚本可能会包含创建索引的语句,如对经常用于查询的字段建立索引,如CustomerID或ProductName。 - **视图和存储过程**:除了基本的表结构和数据,Northwind数据库可能还包括一些...
每个输入元素都可以通过`id`属性进行唯一标识,方便JavaScript进行操作。 接下来是JavaScript的提示与验证部分。我们可以为每个输入元素添加`onfocus`和`onblur`事件监听器,分别在用户聚焦和离开输入框时触发。...