悬停!哪你要知道发生错误时发生的坐标!你在该坐标上显示一个层即可!一般都在出错的表单元素的头或尾插入一个节点:
这有个示例:
http://www.t6new.cn/main/register.asp

解决方案 »

  1.   

    就是一个验证用户输入非空的一个JS,
    以前做的都是非空的话在后边打印出一句话,
    现在由于网页模板的问题,打印出来,样式就变了,
    所以现在想做成一个,在文本后边加一个 图片,加载的时候不显示
    当用户输入为空时,该图片显示
    我想知道如何去做这个判断,在JS里,图片的隐藏属性是什么。!
      

  2.   

    不知道是不是类似这样的:<script language="javascript" type="text/javascript">   
    function divcenter(value)   

    var V_left=(document.body.clientWidth-200)/2+document.body.scrollLeft;   
    var V_top=(document.body.clientHeight-100)/2+document.body.scrollTop; 
    var oDiv = document.createElement("DIV"); 
    oDiv.id = "shop01"; 
    oDiv.style.top = V_left; 
    oDiv.style.left = V_top; 
    oDiv.style.width = 200;
    oDiv.style.height = 100;
    oDiv.style.position= "absolute"; 
    oDiv.style.background = '#FFFF00'; 
    oDiv.style.visibility = 'visible'; 
    oDiv.innerHTML=value; 
    document.body.appendChild(oDiv);       
    }   
    function checkform(obj)
    {
    if(obj.value=="")
    {
    divcenter('不能为空')
    }
    }
    </script> 
    <form name="form1" method="post" action="">
    <input name="uname" type="text" id="uname" onblur="checkform(this)" />
    <input name="提交" type="submit" value="提交" />
    </form>这只是一个简单的例子不知道你是不是这个意思
      

  3.   

    怎么样把图片的悬停事件写成显示错误信息,我有个列子,但是看不懂,知道的帮我看一下/************************************************************** Script : Validate
    Version : 2.1
    Authors : Samuel Birch
    Desc : Form validation
    Licence : Open Source MIT Licence
    Modify : wangxingchao**************************************************************/var Validate = new Class({
    Implements: [Events,Options],

    options:{
    validateOnBlur: true,
    errorClass: 'error',
    errorMsgClass: 'errorMessage',
    dateFormat: 'yyyy-MM-dd',
    onFail: Class.empty,
    onSuccess: false,
    showErrorsInline: true,
    label: '请等待...'
    }, initialize: function(form,tip,options,validates){
    this.setOptions(options);

    this.form = $(form);
    this.tip = tip;
    this.elements = this.form.getElements('.vvv');

    this.validates = new Hash(validates);

    this.list = [];

    this.elements.each(function(el,i){
    if(this.options.validateOnBlur){
    el.addEvent('blur', this.validate.bind(this, el));
    el.addEvent('keyup', this.validate.bind(this, el));
    }
    }.bind(this));

    this.form.addEvent('submit', function(e){
    var event = new Event(e);
    var doSubmit = true;
    this.elements.each(function(el,i){
    if(! this.validate(el)){
    event.stop();
    doSubmit = false
    this.list.include(el);
    }else{
    this.list.remove(el);
    }
    }.bind(this));

    if(doSubmit){
    if(this.options.onSuccess){
    event.stop();
    this.options.onSuccess(this.form);
    }else{
    this.form.getElement('input[type=submit]').setProperty('value',this.options.label);
    }
    }else{
    this.options.onFail(this.getList());
    }

    }.bind(this));

    },

    validateAll:function(){
    var passed = true;

    this.elements.each(function(el,i){
    if(! this.validate(el)){
    passed = false;
    }
    }.bind(this));

    return passed;
    },

    getList: function(){
    var list = new Element('ul');
    this.list.each(function(el,i){
    if(el.title != ''){
    var li = new Element('li').injectInside(list);
    new Element('label').setProperty('for', el.id).set('text',el.title).injectInside(li);
    }
    });
    return list;
    },

    validate: function(el){
    var valid = true;
    this.clearMsg(el);

    switch(el.type){
    case 'text':
    case 'textarea':
    case 'password':
    case 'select-one':
    if(el.value != ''){
    if(el.hasClass('email')){
    var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
    if(el.value.toUpperCase().match(regEmail)){
    valid = true;
    }else{
    valid = false;
    this.setMsg(el, '邮件格式错误');
    }
    }

    if(el.hasClass('number')){
    var regNum = /[-+]?[0-9]*\.?[0-9]+/;
    if(el.value.match(regNum)){
    valid = true;
    }else{
    valid = false;
    this.setMsg(el, '该项必须为数字');
    }
    }

    if(el.hasClass('sel')){
    //var regNum = /[-+]?[0-9]*\.?[0-9]+/;
    if(el.value!=0){
    valid = true;
    }else{
    valid = false;
    this.setMsg(el, '请选择');
    }
    }

    /* added by Roger Zeng */
    if(el.hasClass('float')) {
    var reg = /^[-\+]?\d*\.?\d+$/;

      if(reg.test(el.value)) {
    valid = true;
    } else {
    valid = false;
    this.setMsg(el, '该项必须为浮点数');
    }
    }

    if(el.hasClass('int')) {
    var reg = /^[-\+]?\d+$/;

      if(reg.test(el.value)) {
    valid = true;
    } else {
    valid = false;
    this.setMsg(el, '该项必须为整数');
    }
    }

    if(el.hasClass('posint')) {
    var reg = /^\+?\d+$/;

      if(reg.test(el.value)) {
    valid = true;
    } else {
    valid = false;
    this.setMsg(el, '该项必须为正整数');
    }
    }

    if(el.hasClass('postcode')){
    var regPC = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) [0-9][A-Za-z]{2})$/
    if(el.value.match(regPC)){
    valid = true;
    }else{
    valid = false;
    this.setMsg(el, '邮编格式错误');
    }
    }

    if(el.hasClass('date')){
    var d = Date.parseExact(el.value, this.options.dateFormat);
    if(d != null){
    valid = true;
    }else{
    valid = false;
    this.setMsg(el, '日期格式错误,正确的格式为: ' + this.options.dateFormat.toLowerCase());
    }
    }

    }else{
    if(el.hasClass('required')){
    valid = false;
    this.setMsg(el, el.title || '该项为必填项!');
    }
    }
    break;

    case 'checkbox':
    if(!el.checked){
    valid = false;
    this.setMsg(el);
    }else{
    valid = true;
    }
    break;

    case 'radio':
    var rad = $A(this.form[el.name]);
    var ok = false;
    rad.each(function(e,i){
    if(e.checked){
    ok = true;
    }
    });
    if(!ok){
    valid = false;
    this.setMsg(rad.getLast(), 'Please select an option');
    }else{
    valid = true;
    this.clearMsg(rad.getLast());
    }
    break;

    }

    if(valid==true){
    var fn = this.validates.get(el.name);
    if(Function.type(fn)){
    var validateRes = fn(el);
    if(!(validateRes===true)){
    valid=false;
    this.setMsg(el,String.type(validateRes)?validateRes:'验证不通过');
    }
    }
    }
    return valid;
    },

    setMsg: function(el, msg){
    if(msg == undefined){
    msg = el.title;
    }
    if(this.options.showErrorsInline){
    if(el.error == undefined){
    el.error = new Element('a',{
    'class':'validate-invalid-note',
    'href':'javascript:void(0)',
    'html':'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',
    'title':msg
    }).injectAfter(el);
    el.error.store('tip:text','');
    this.tip.attach(el.error);
    }else{
    el.error.addClass('validate-invalid-note');
    }
    el.addClass(this.options.errorClass);
    el.addClass('validate-invalid-input');
    }
    },

    clearMsg: function(el){
    el.removeClass(this.options.errorClass);
    el.removeClass('validate-invalid-input');
    this.tip.detach(el.error);
    if(el.error != undefined){
    el.error.dispose();
    el.error = undefined;
    }
    }

    });
    /*************************************************************/