当前位置:编程学习 > JS >>

JS验证控件1.2 新增提示框

[javascript] 
// JavaScript Document 
if (typeof (HTMLElement) != "undefined") { 
    HTMLElement.prototype.insertAdjacentElement = function(where, parsedNode) { 
        switch (where) { 
            case "beforeBegin": 
                this.parentNode.insertBefore(parsedNode, this); 
                break; 
            case "afterBegin": 
                this.insertBefore(parsedNode, this.firstChild); 
                break; 
            case "beforeEnd": 
                this.appendChild(parsedNode); 
                break; 
            case "afterEnd": 
                if (this.nextSibling) 
                    this.parentNode.insertBefore(parsedNode, this.nextSibling); 
                else 
                    this.parentNode.appendChild(parsedNode); 
                break; 
        } 
    } 
    HTMLElement.prototype.insertAdjacentHTML = function(where, htmlStr) { 
        var r = this.ownerDocument.createRange(); 
        r.setStartBefore(this); 
        var parsedHTML = r.createContextualFragment(htmlStr); 
        this.insertAdjacentElement(where, parsedHTML); 
    } 
    HTMLElement.prototype.insertAdjacentText = function(where, txtStr) { 
        var parsedText = document.createTextNode(txtStr); 
        this.insertAdjacentElement(where, parsedText); 
    } 

 
 
function addEvent(element, type, handler) { 
    //为每一个事件处理函数分派一个唯一的ID 
    if (!handler.$$guid) handler.$$guid = addEvent.guid++; 
    //为元素的事件类型创建一个哈希表 
    if (!element.events) element.events = {}; 
    //为每一个"元素/事件"对创建一个事件处理程序的哈希表 
    var handlers = element.events[type]; 
    if (!handlers) { 
        handlers = element.events[type] = {}; 
        //存储存在的事件处理函数(如果有) 
        if (element["on" + type]) { 
            handlers[0] = element["on" + type]; 
        } 
    } 
    //将事件处理函数存入哈希表 
    handlers[handler.$$guid] = handler; 
    //指派一个全局的事件处理函数来做所有的工作 
    element["on" + type] = handleEvent; 
}; 
//用来创建唯一的ID的计数器 
addEvent.guid = 1; 
function removeEvent(element, type, handler) { 
    //从哈希表中删除事件处理函数 www.zzzyk.com 
    if (element.events && element.events[type]) { 
        delete element.events[type][handler.$$guid]; 
    } 
}; 
function handleEvent(event) { 
    var returnValue = true; 
    //抓获事件对象(IE使用全局事件对象) 
    event = event || fixEvent(window.event); 
    //取得事件处理函数的哈希表的引用 
    var handlers = this.events[event.type]; 
    //执行每一个处理函数 
    for (var i in handlers) { 
        this.$$handleEvent = handlers[i]; 
        if (this.$$handleEvent(event) === false) { 
            returnValue = false; 
        } 
    } 
    return returnValue; 
}; 
//为IE的事件对象添加一些“缺失的”函数 
function fixEvent(event) { 
    //添加标准的W3C方法 
    event.preventDefault = fixEvent.preventDefault; 
    event.stopPropagation = fixEvent.stopPropagation; 
    return event; 
}; 
fixEvent.preventDefault = function() { 
    this.returnValue = false; 
}; 
fixEvent.stopPropagation = function() { 
    this.cancelBubble = true; 
}; 

 

[javascript]
//验证控件 
var Validator = function(formid) { 
    var $$ = function(id) { 
        return document.getElementById(id); 
    } 
    this.IsValidator = false; 
    var base = this; 
    var form = $$(formid); 
    var validArr = new Array(); 
    var validObjTag = "v_"; 
    //绑定验证控件的Class属性    
    var spans = document.getElementsByTagName("span"); 
    for (var i = 0; i < spans.length; i++) { 
        if (spans[i].id.indexOf(validObjTag) != -1) 
            spans[i].className = "validator"; 
    } 
    //绑定提交事件 
    addEvent(form, "submit", function() { 
        base.IsValidator = base.valid(true); 
        return base.IsValidator; 
    }); 
 
    //验证控件对应的ID    
  &nbs

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,