이 글은 주로 jQuery Validate 양식 확인 플러그인 구현 코드를 소개합니다. 필요한 친구들이 참고하면 도움이 될 것입니다.
1 폼 검증 준비
긴 논의를 시작하기 전에 먼저 폼 검증의 효과를 보여드리겠습니다.
1. 양식 항목을 클릭하면 도움말 프롬프트가 표시됩니다. 2. 마우스가 양식 항목을 벗어나면 요소 확인이 시작됩니다. 3. 마우스가 떠난 후 올바른 메시지와 오류 메시지가 표시되고, 도움말 메시지가 나타나면 도움말 알림이 표시됩니다. 마우스 움직임
초보자를 위한 일반적으로 HTML 양식 유효성 검사는 매우 사소한 문제입니다. 양식 검증을 수행하려면 다음 기본 요소를 준비해야 합니다.
1.html 양식 구조: 검증이 필요한 양식 요소를 포함합니다.
2.js 논리 제어: 검증이 필요한 양식 요소에 이벤트 바인딩 클릭, 포커스 획득, 포커스 상실 및 기타 이벤트와 같은 확인 및 이러한 이벤트에 해당하는 실행 기능 설정
3. CSS 스타일 설정: 확인이 필요한 양식 요소에 대해 기본 이니셜을 설정해야 합니다. 스타일 및 요소 바인딩 이벤트 스타일을 트리거한 후의 변경 사항입니다.
이 세 가지 기본 요소 중에서 html 양식 구조를 만드는 것은 비교적 간단합니다. 양식 검증의 초점과 어려움은 js를 사용하여 사용자에게 양식 작업에 대한 정보를 신속하고 효과적으로 상기시키는 방법입니다. 여기서는 Baidu, 163 Mailbox, JD.com 등 유명 인터넷 회사의 등록 페이지를 참조하고 양식 확인에 필요한 주요 프롬프트 정보를 다음과 같이 요약합니다.
1. 양식 요소가 포커스된 후의 도움말 정보( 해당 클래스 이름 "플러그인의 팁")
2. 양식 요소가 검증될 때의 성공 정보(플러그인의 클래스 이름 "valid"에 해당)
3. 양식 요소가 확인되지 않습니다(플러그인의 클래스 이름 "error"에 해당).
플러그인이 없으면 다양한 스타일 간 전환을 고려하고 몇 가지 기본 유효성 검사 규칙을 작성하는 등 다양한 유형의 정보 프롬프트를 작성하는 데 많은 시간을 소비해야 합니다. “내가 더 멀리 볼 수 있는 이유는 거인의 어깨 위에 서 있기 때문이다.”라는 유명한 말이 있습니다. 기존의 성숙한 플러그인을 사용하여 양식 유효성 검사 기능을 신속하게 작성하는 데 도움을 받으면 효율성을 향상시킬 수 있을 뿐만 아니라 자체 논리에 집중할 시간을 가질 수 있습니다.
많은 양식 유효성 검사 플러그인 중에서 jQuery 유효성 검사 플러그인은 가장 오래된 jQuery 플러그인 중 하나이며 전 세계의 다양한 프로젝트에서 검증되었습니다. 기능은 다음과 같습니다:
1. 내장된 검증 규칙: 필수 필드, 숫자, 이메일, URL 및 신용 카드 번호와 같은 검증 규칙이 내장되어 있습니다.
2. 맞춤형 검증 규칙: 쉽게 사용자 정의할 수 있습니다. 검증 규칙($ .validator.addMethod(name, method, message) 구현을 통해)
3. 간단하고 강력한 검증 정보 프롬프트: 검증 정보 프롬프트가 기본값으로 설정되어 있으며 기본 정보 프롬프트를 사용자 정의하는 기능을 제공합니다( 메시지 매개변수 구현)
4. 실시간 검증: 양식을 제출할 때뿐만 아니라 키업이나 블러 이벤트를 통해서도 검증이 실행될 수 있습니다.
다음으로 간단하고 아름다운 양식 유효성 검사 예제를 구현하기 위해 이 플러그인을 선택합니다.
2 양식 유효성 검사를 구현하는 jquery 유효성 검사 플러그인의 작은 예
jquery 유효성 검사 플러그인을 소개하기 전에 해당 플러그인이 종속된 jquery.js 파일을 소개해야 합니다(예제에서 jquery 버전은 1.9입니다). 구현 과정에서 좋은 결과를 얻기 위해 jquery.validate.extend.js 파일에서 jquery 유효성 검사의 원래 기능을 확장하고 관련 기본 옵션을 수정했습니다. 따라서 3개의 파일을 도입해야 합니다. 문서 헤드:
<script></script> <script></script> <script></script>
2.1 Form html
Form 검증의 세 가지 요소 중 먼저 html Form 구조 코드 작성을 완료해야 합니다. 양식 구조를 간단하고 명확하게 만들기 위해 양식의 각 요소를 p 구조로 래핑합니다. 레이블 태그는 요소 이름을 표시하는 데 사용되며 그 뒤에 양식 요소 자체가 표시됩니다. [참고: 1. 라벨 태그를 사용하면 마우스 사용자의 사용성이 향상되는 이점이 있습니다. 레이블 요소 내의 텍스트를 클릭하면 브라우저는 자동으로 레이블과 관련된 양식 컨트롤로 초점을 이동합니다. 2. 확인해야 하는 각 양식 요소는 플러그인을 사용할 때 확인 규칙 및 확인 정보를 요소에 바인딩하기 쉽도록 id 및 name 속성을 설정해야 합니다. 】
양식 구현 코드는 다음과 같습니다.
2.2 양식 확인 js logic
接着我们通过js来实现对表单元素的校验。在校验之前,我对jquery validate插件进行了功能扩展,对默认的选项进行了重写覆盖。jquery validate插件默认只提供了校验正确及错误时的提示,缺少我们常见的帮助信息提示。为了解决这个问题,我仔细研究了插件的源码,发现插件本身提供了onfocusin(校验元素获得焦点时调用)和onfocusout(校验元素失去焦点时调用)这两个函数。通过修改默认参数的这两个接口,可以实现党用户鼠标点击或选择元素时(即元素获得焦点),提示帮助信息;在用户鼠标离开元素时(即元素失去焦点),移除帮助信息。
此外,jquery validate默认提供表单元素输入时的实时校验,因为我们要求在输入时只提示用户帮助信息,故需要关闭输入的实时校验,为此我们将默认参数中的onkeyup设置为null。
具体的扩展改进代码我放到了新增js脚本jquery.validate.extend.js中,代码如下:
/*******************************插件新功能-设置插件validator的默认参数*****************************************/ $.validator.setDefaults({ /*关闭键盘输入时的实时校验*/ onkeyup: null, /*添加校验成功后的执行函数--修改提示内容,并为正确提示信息添加新的样式(默认是valid)*/ success: function(label){ /*label的默认正确样式为valid,需要通过validClass来重置,否则这里添加的其他样式不能被清除*/ label.text('').addClass('valid'); }, /*重写校验元素获得焦点后的执行函数--增加[1.光标移入元素时的帮助提示,2.校验元素的高亮显示]两个功能点*/ onfocusin: function( element ) { this.lastActive = element; /*1.帮助提示功能*/ this.addWrapper(this.errorsFor(element)).hide(); var tip = $(element).attr('tip'); if(tip && $(element).parent().children(".tip").length === 0){ $(element).parent().append("<label>" + tip + "</label>"); } /*2.校验元素的高亮显示*/ $(element).addClass('highlight'); // Hide error label and remove error class on focus if enabled if ( this.settings.focusCleanup ) { if ( this.settings.unhighlight ) { this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); } this.hideThese( this.errorsFor( element ) ); } }, /*重写校验元素焦点离开时的执行函数--移除[1.添加的帮助提示,2.校验元素的高亮显示]*/ onfocusout: function( element ) { /*1.帮助提示信息移除*/ $(element).parent().children(".tip").remove(); /*2.校验元素高亮样式移除*/ $(element).removeClass('highlight'); /*3.替换下面注释的原始代码,任何时候光标离开元素都触发校验功能*/ this.element( element ); /*if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) { this.element( element ); }*/ } });
完善插件的功能后,现在就是重头戏——使用插件为表单元素绑定校验规则和校验信息。jquery validate插件提供validate方法实现form表单的元素校验,该方法的参数是一个包含键值对的对象。其中最常用的键有rules(为不同元素定义校验规则),messages(为不同元素定义错误提示信息),success(校验正确后的字符串或者是执行函数)。常见的校验规则有:required(是否必填),minlength(最小长度),maxlength(最大长度),email(email格式规则),url(url格式规则),date(date格式规则),rangelength(给定长度范围规则),equalTo(要求元素等于另一元素例如equalsTo:"#password")。下面的代码呈现了如何对表单中的用户名、密码等字段绑定校验规则:
<script> $(document).ready(function(){ $("#regForm").validate({ rules: { username:{ required: true, minlength: 2 }, password:{ required: true, minlength: 6, maxlength: 16 }, repassword:{ required: true, equalTo: "#password" }, amt: { required: true, amtCheck: true } }, messages:{ username:{ required: "用户名不能为空", minlength: "用户名的最小长度为2" }, password:{ required: "密码不能为空", minlength: "密码长度不能少于6个字符", maxlength: "密码长度不能超过16个字符" }, repassword:{ required: "确认密码不能为空", equalTo: "确认密码和密码不一致" }, amt: { required: "金额不能为空" } } }); }); </script>
2.3 表单验证css样式
最后还要为页面元素添加css样式。插件中有一系列默认选项:其中默认错误显示标签为label,错误样式为label.error。上面在jquery.validate.extend.js文件中,有一个success函数需要说明一下。这个函数是在校验成功的时候执行的,我们在函数中为label提示标签添加了校验正确对应的样式label.valid。因此在css中如果要美化信息提示,需要对label相关样式如error,valid样式进行设计。此外我们在扩展插件功能中添加了一个class为tip的label标签,该标签仅在校验元素获得焦点时生成。为此,还需要设置label的tip样式。
完整的样式文件内容具体如下:
body{ font-family: Microsoft Yahei; font-size: 15px; } fieldset{ width: 680px; } legend{ margin-left: 8px; } .item{ height: 56px; line-height: 36px; margin: 10px; } .item .item-label{ float: left; width: 80px; text-align: right; } .item-text{ float: left; width: 244px; height: 16px; padding: 9px 25px 9px 5px; margin-left: 10px; border: 1px solid #ccc; overflow: hidden; } .item-select{ float: left; height: 34px; border: 1px solid #ccc; margin-left: 10px; font-size: 14px; padding: 6px 0px; } .item-submit{ margin-left: 88px; } input.error{ border: 1px solid #E6594E; } input.highlight{ border: 1px solid #7abd54; } label.error,label.tip{ float: left; height: 32px; line-height: 32px; font-size: 14px; text-align: left; margin-left: 5px; padding-left: 20px; color: red; background: url('error.png') no-repeat left center; } label.tip{ color: #aaa; background: url('tip.png') no-repeat left center; } label.valid{ background: url('valid.png') no-repeat left center; width: 32px; }
3 表单验证效果演示
至此,表单校验的代码编写和插件的应用已经全部完成。在浏览器中运行代码,显示效果如下图:
基本上满足现在大多数网站表单验证的要求,如果需要增加验证规则,只需要在jquery.validate.extend.js中增加校验规则即可,例子如下:
/*******************************插件字段校验*****************************************/ $.validator.addMethod( "amtCheck", function(value, element){ /*var dotPos = value.indexOf('.'); return value > 0 && dotPos 0 && value.substring(dotPos + 1) <p>相关推荐:</p><p><a href="http://www.php.cn/js-tutorial-383769.html" target="_self">jquery.validate.js 多个相同name的处理方式详解</a></p><p><a href="http://www.php.cn/js-tutorial-383748.html" target="_self">jQuery Validate格式验证功能实例代码分享</a></p><p><a href="http://www.php.cn/js-tutorial-370245.html" target="_self">jQuery Validate的步骤 实用教程</a></p>
위 내용은 jQuery Validate 양식 유효성 검사 플러그인에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
