검출 형식에서 비어질 수없는 검증 (.notnull)
기능 : 한 쌍의 양식 태그 아래에 여러 (1 개 포함) 양식이있는 경우 JS를 사용하여 현재 버튼에 어떤 요소가 작성되는지 정확하게 판단하십시오.
사용법 : Class = "form"을 제공하려면 양식 태그 아래에서 현재 양식의 컨테이너를 찾으십시오.
비어있는 것으로 확인 해야하는 요소는 class = "notnull"nullmsg = "xx가 null이 될 수 없습니다!" 프롬프트와 논리적 판단이 필요한 형태는 클래스 = "니드"가 주어집니다.
주어진 판단 유형 (숫자 일 수 있음) 검증 프롬프트 로그 2 "xx는 숫자 일 수 있습니다"
클래스 = "errormessage"를 제공하여 오류 메시지 블록을 표시하십시오
오류 메시지를 표시하려면 클래스 = "WARN"을 제공하십시오
JS 객체 지향 프로그래밍을 사용하지 않습니다
논리적 판단, 필요 식별자를 전달하지 말고 판단을하기 위해 정규 표현 속성 (Custom) Regex = "/^/d $/"를 직접 제공합니다.
외부에서 구현되었습니다
Global.submitCallback 버튼 콜백 함수
global.confirmcallback 콜백 함수 확인;
개선 장소 :
아직 없음
코드 사본은 다음과 같습니다.
/// <참조 경로 = "공급 업체/jQuery-1.4.1-vsdoc.js"/>
*/
// $ (Document). Ready (
// 기능 () {
// $ ( "form"). find ( ". notnull"). bind ({{
// 초점 : function () {
// if ($ (this) .attr ( "value") == this.defaultValue) {
// $ (this) .attr ( "value", "");
//}
//},
// blur : function () {
// if ($ (this) .attr ( "value") == "") {
// $ (this) .attr ( "value", this.defaultValue);
//}
//}
//});
//}
//);
///* 보편적 인 감지 양식을 캡슐화하는 메소드*/
///event.srcelement : 이벤트를 제기하는 대상 객체, 종종 Onclick 이벤트에 사용됩니다.
///event.FromElement : OnMouseOut 및 OnMouseOver 이벤트에서 종종 사용되는 이벤트를 제기하는 객체 소스.
///event.toElement : 이벤트가 제기 된 후, 마우스로 이동 한 대상 소스는 종종 OnMouseOut 및 OnMouseOver 이벤트에 사용됩니다.
function global () {
var _self = this;
}
Global.submitCallback = null;
global.confirmcallback = null;
$ (document) .ready (function () {
// 몸을 형성합니다
$ ( "body"). find ( ". form"). 각 (function () {
this.onclick = function (e) {
var button = null;
노력하다 {
버튼 = e.srcelement == null? Document.ActiveElement : e.srcelement;
} catch (e) {
Console.log (e.message)
버튼 = Document.ActiveElement;
}
if ($ (button) .is ( ". check")) {
// Alert ( "제출")
var sub = (checkform (this) && checkInputRex (this) && checkSelect (this) && checkChecked (this));
if (sub) {
// 콜백을 호출하지만 우리 자신의 인스턴스를 컨텍스트로 사용합니다.
Global.submitCallback.Call (this, [e]);
}
반환 서브;
} else if ($ (button) .is ( ". 확인")) {
// Alert ( "삭제")
var sub = 확인 ($ (button) .attr ( "title"));
if (sub) {
global.confirmcallback.call (this, [e]);
}
반환 서브;
} 또 다른 {
// // Alert ( "기타")
진실을 반환하십시오.
}
}
});
/*형태로 비울 수없는 요소의 감지*/
함수 checkform (form) {
var b = true;
$ (form) .find ( ". notnull"). 각 (function () {
if ($ .trim ($ (this) .val ()). length <= 0) {// || $ (this) .val () == this.defaultValue
// if (this.value! = null) {
// $ (this) .attr ( "value", "");
//}
//alert($(this).attr("msg ")))
$ (this) .parents ( ". form"). find ( ". warn"). text ($ (this) .attr ( "nullmsg"));
$ (this) .parents ( ". form"). find ( ". errormessage"). show ();
$ (this) .select ();
$ (this) .focus ();
반환 b = 거짓;
}
});
if (b == true) {
$ (form) .find ( ". Warn"). 텍스트 ( "");
$ (form) .find ( ". errormessage"). hide ();
}
반환 b;
}
/*감지 양식의 필수 드롭 다운 목록*/
함수 checkSelect (form) {
var b = true;
$ (form) .find ( ". select"). 각 (함수 (i) {
var ck = $ (this) .find ( '옵션 : selected'). text ();
if (ck.indexof ( "select")> -1) {
$ (this) .parents ( ". form"). find ( ". warn"). text ($ (this) .attr ( "nullmsg"));
$ (this) .parents ( ". form"). find ( ". errormessage"). show ();
$ (this) .select ();
$ (this) .focus ();
반환 b = 거짓;
}
});
반환 b;
}
/*감지 양식의 필수 확인란*/
함수 CheckChecked (form) {
var b = true;
$ (form) .find ( ". checkbox"). 각 (함수 (i) {
var ck = $ (this) [0] .Checked;
if (! ck) {
$ (this) .parents ( ". form"). find ( ". warn"). text ($ (this) .attr ( "nullmsg"));
$ (this) .parents ( ". form"). find ( ". errormessage"). show ();
$ (this) .select ();
$ (this) .focus ();
반환 b = 거짓;
}
});
반환 b;
}
// 정규 표현식이 일치하는지 확인하십시오
함수 getFlase (value, reg, ele) {
if (reg.test (value)) {
진실을 반환하십시오.
}
$ (ele) .parents ( ". form"). find ( ". warn"). text ($ (ele) .attr ( "logicmsg"));
$ (ele) .parents ( ". form"). find ( ". errormessage"). show ();
$ (ele) .focus ();
$ (ele) .select ();
거짓을 반환합니다. // 제출할 수 없습니다
}
함수 checkInputRex (form) {
var b = true;
$ (form) .find ( "input [type = 'text']"). 각 (function () {
if (typeof ($ (this) .attr ( "regex")) == 'string') {
if ($ .trim ($ (this) .val ()). length> 0 && $ (this) .val ()! = this.defaultValue) {
// 현재 양식 값
var value = $ (this) .attr ( "value") || $ (this) .val ();
var regx = eval ($ (this) .attr ( "regex"));
return b = getflase (value, regx, this);
}
}
});
반환 b;
}
/// 사용자가 입력 한 해당 문자가 합법적인지 확인
///이 방법은 버려집니다
함수 checkinput (form) {
var b = true;
$ (form) .find ( ". need"). 각 (function () {
if ($ .trim ($ (this) .val ()). length> 0 && $ (this) .val ()! = this.defaultValue) {
// 현재 양식 값
var value = $ (this) .attr ( "value");
// ID의 값 또는 이름 속성 값은 다음과 같습니다. [name = "contact"]
var name = $ (this) .attr ( "class");
// 입력해야 할 컨텐츠가 합법적인지 확인하십시오 : 연락처 정보
var len = name.split ( "");
for (var i = 0; i <len.length; i ++) {
스위치 ($ .trim (len [i])) {
/// 연락처 정보
"모바일"사례 :
var reg =/^1/d {10} $/;
return b = getFlase (value, reg, this);
부서지다;
///우편
사례 "이메일":
var reg = /^] /^ re (/w-and] +)*@w- 탠션 (/w-] +) +)+$/;
return b = getFlase (value, reg, this);
부서지다;
/// 비밀번호는 두 번 동일합니다
"비밀번호":
부서지다;
CASE "PASSFormation2":
if ($ ( "#password"). attr ( "value")! = $ ( "#password2"). attr ( "value") {
$ (this) .select (); // 집중하십시오
$ (this) .parents ( ". form"). find ( ". warn"). text ($ (this) .attr ( "logicmsg"));
$ (this) .parents ( ". form"). find ( ". errormessage"). show ();
반환 b = 거짓; // 제출할 수 없습니다
}
부서지다;
"Worktel"사례 :
"HomeTel": // 홈 전화
var reg =/^/d {8} $/;
return b = getFlase (value, reg, this);
부서지다;
사례 "post": // 우편 번호
var reg =/^/d {6} $/;
return b = getFlase (value, reg, this);
부서지다;
사례 "보너스":
사례 "수당":
사례 "고정 당화":
var reg = /^-- (1-9 ]/d*/./d*|0/./d* 9 ]/d*|0?/0 +|0|= | 1-9 ]/d)$/;
return b = getFlase (value, reg, this);
부서지다;
사례 "신원":
var reg =/(^/d {15} $) | (^/d {18} $) | (^/d {17} (/d | x | x) $)/;
return b = getFlase (value, reg, this);
부서지다;
CASE "HEIGHT":
var reg = /^[1-2] [0-9] [0-9] $ /;
return b = getFlase (value, reg, this);
부서지다;
사례 "QQ":
var reg = /^[1-9] [0-9] {4,} $ /;
return b = getFlase (value, reg, this);
부서지다;
사례 "Begintime":
"endtime"사례 :
var reg =/^/d {4} $/;
if (reg.test (value) && (parseint ($ ( ". endtime"). val ())> parseint ($ ( ". begintime")) {
반환 b;
}
$ .ligerdialog.alert ($ (this) .attr ( "msg")))
$ (this) .select (); // 집중하십시오
반환 b = 거짓; // 제출할 수 없습니다
부서지다;
"num"사례 :
var reg =/^/d+$/;
return b = getFlase (value, reg, this);
부서지다;
/// 본토는 홍콩과 마카오 패스와 홍콩 비자를 신청하여 홍콩으로 가야합니다. 개인 보통 여권 번호의 형식은 다음과 같습니다.
/// 14/15+7 자리, G+8 자리;
/// 평범한 작업은 다음과 같습니다. P.+7 자리;
/// 공식 사업은 다음과 같습니다. S.+7 자리 또는
// s+8 자리, d로 시작하는 외교 여권은
사례 "우편 포트": // 여권 번호
var reg =/^(p/d {7} | g/d {8} | s/d {7,8} | d/d+| 1 [4,5]/d {7}) $/;
return b = getFlase (value, reg, this);
부서지다;
"BankAccount"사례 :
var reg = /^[0-9] {19} $ /;
return b = getFlase (value, reg, this);
부서지다;
} // 스위치
} //을 위한
}
});
반환 b;
}
///이 방법은 버려졌습니다
});
/// 배경색을 클릭하십시오
$ (document) .ready (function () {
var inputs = $ ( "#top> .c> input");
$ (입력) .Each (function () {
this.onclick = function () {
document.getElementById ( "main"). Style.backgroundColor = this.name;
//$("#main").backgroundcolor = this.name;
}
});
});
위의 코드는 캡슐화 후 보편적 인 감지 양식입니다. 나는 당신이 그것을 좋아하기를 바랍니다