基于jQuery的弹出框插件

html如下:


代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.7.min.js"></script>
<script type="text/javascript" src="jquery-1.0.popwin.js"></script>
<script type="text/javascript">
$(function() {
$("#btn01").popwin({
element: "#box01",
title: "请填写以下您的基本信息"
});
$("#btn02").popwin({
element: "#box02",
title: "请登陆"
});
})
</script>
<title>DEMO</title>
</head>
<body>
<div id="box01">
<form action="" method="post" onsubmit="return check();">
姓名:
<input type="text" size="30" name="username" id="username" onblur="return check();" value="" /><span id="nameErr"></span>
<br />
<br />
密码:
<input type="password" size="30" name="password" onblur="return check();" id="password" value="" /><span id="passwordErr"></span>
<br />
<br />
邮箱:
<input type="text" size="30" id="email" value="" onblur="return check();" /><span id="emailErr"></span>
<br />
<br />
<input type="submit" value="确定" />
<input type="reset" value="取消" />
</form>
</div>
<div id="box02">
<form action="" method="post">
姓名:
<input type="text" size="30" value="" />
<br />
<br />
密码:
<input type="password" size="30" value="" />
<br />
<br />
<input type="submit" value="确定" />
<input type="reset" value="取消" />
</form>
</div>
<button value="注册" id="btn01">注册</button>
<button value="登陆" id="btn02">登陆</button>
</body>
</html>

js插件如下:


代码如下:

/*
* jquery.popwin.js 1.0
* Copyright (c) gaoyubao
* Date: 2012-01-12
* 1.点击按钮,可以弹出你想弹出的内容,只要设置一下id,或者class
2.浏览器窗口缩小的时候,弹出框始终是居中的
3.按ESC间,可以关闭窗口
*/
(function($) {
var css='<style type="text/css">* {margin: 0;padding: 0;}#bg{background-color: #000; position: absolute; left:0; top:0;opacity: 0.5;filter:alpha(opacity=50);} #flagBox {position: absolute;border: 1px solid #000;background-color: #fff;z-index:2000;}#titleBox {padding: 5px;background-color:#fc0; overflow:hidden;} #titleBox p {font-weight: bold;} #titleBox a {float: right;} #htmlCode {padding: 10px;} span {font-size: 12px; color: #f00; margin-left: 10px;}</style>';
$("head").append(css);
$.fn.popwin= function(options) {
var settings={
element: "element", //哪一个弹出框,可以是id,或者是class
width: 400,
height: 200,
title: "title" //弹出框的title
}
var s=$.extend(settings,options);
var htmlCode=$(s.element).html();
$(s.element).remove();
$.a={
//设置背景的宽和高
setBg: function() {
var bh=$("body").height(),wh=$(window).height(),ww=$(window).width();
if(bh>wh) {
wh=bh;
}
$("#bg").css({
width: ww,
height: wh
});
},
//设置弹出框居中
setFlag: function() {
var l=(document.documentElement.clientWidth-s.width)/2+"px",
t=(document.documentElement.clientHeight-s.height)/2+"px";
$("#flagBox").css({
width: s.width,
height: s.height,
left: l,
top: t
});
},
//弹出框关闭
setClose: function() {
$("#container").remove();
}
};
var html='<div id="container"><div id="bg"></div><div id="flagBox"><div id="titleBox"><a href="javascript:void(0)">close</a><p>'+s.title+'</p></div><div id="htmlCode">'+htmlCode+'</div></div></div>';
$(window).resize(function() {//调解窗口的大小
$.a.setFlag();
});
return this.each(function() {
$(this).bind("click",function(){
$("body").append(html);
$("#titleBox a").click(function() {
$.a.setClose();
});
$.a.setBg();
$.a.setFlag();
});
$(document).keydown(function(event) {
if(event.which=="27") {
$.a.setClose();
}
});
});
};
})(jQuery)
function isEmail(str) {
var reg = /^([a-zA-Z0-9_-])+@+([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])/;
if(reg.exec(str)) {
return false;
}else {
return true;
}
}
function check() {
var flag=true;
$("#nameErr").html('');
$("#passwordErr").html('');
$("#emailErr").html('');
var username=$("#username").val();
var password=$("#password").val();
var email=$("#email").val();
if(username=="" || username==null) {
$("#nameErr").html("姓名不能为空");
flag=false;
}
if(password=="") {
$("#passwordErr").html("密码不能为空");
flag=false;
}
if(email=="") {
$("#emailErr").html("邮箱不能为空");
flag=false;
}else if(isEmail(email)) {
$("#emailErr").html("邮箱格式错误");
flag=false;
}
return flag;
}

(0)

相关推荐

  • jquery弹出框插件jquery.ui.dialog用法分析

    本文实例讲述了jquery弹出框插件jquery.ui.dialog用法.分享给大家供大家参考,具体如下: 1. jquery.ui.dialog 官方地址 http://jqueryui.net/dialog/ jquery.ui.dialog是一个非常灵活的模式框,它的官方地址为: http://docs.jquery.com/UI/Dialog 2. 文件引用 要使用jquery.ui.dialog,需要引用两个文件,1个是js,另外1个是css 在contentpage中添加: <scr

  • 使用jQuery的easydrag插件实现可拖动的DIV弹出框

    EasyDrag 是一个用来实现页面元素拖拉的 jQuery 插件. 在没遇到easydrag插件之前,想实现一个弹出框并不是一件轻而易举的事情! 人们常说没有不劳而获的事情,但在编码的世界中却不是这样.更多的开源框架方面了我们,也毒害了我们! 废话少说,先看效果: 全部代码: <!DOCTYPE HTML> <html> <head> <title>easydrag实现可拖动的DIV弹出框</title> <style> /* 重置

  • jQuery前端框架easyui使用Dialog时bug处理

    最近一直都在用easyui前端框架来开发设计UI,但在使用Dialog时,发现如果页面内容比较多,就会出现问题,首先看一下我的原代码: 复制代码 代码如下: <input type="button" value="确认预约" id="btnconfirm" onclick="javascript:openconfirmDlg();" />     <div id="confirmd">

  • 为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能

    复制代码 代码如下: $("#dialog").dialog({ bgiframe: true, autoOpen: false, position: [PosX, PosY], //alert 出来为:" , "(不含双引号),或者报错,不知什么原因. height: 300, modal: true, buttons: { '创建新账号': function() { var bValid = true; allFields.removeClass('ui-sta

  • 为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能

    经过摸索进行了扩展,增加"自动记住关闭时的位置"的功能,源码如下: 复制代码 代码如下: //myJquery.ui.dialog.ex.js //////////////////////////////////// //自动记住 jquery.ui.dialog关闭时的位置 /////////////////////////////////// (function($){ var originClose = $.ui.dialog.prototype.close; $.ui.dial

  • jquery ui dialog替代confirm实例分析

    本文实例讲述了jquery ui dialog替代confirm的方法.分享给大家供大家参考,具体如下: js的confirm,有的浏览器会直接屏蔽掉,导致功能无法使用,推荐使用jquery ui 的dialog功能,完美替换confirm功能 1.html代码 <div id="confirm_dialog" title="提示" style="display:none;"> </div> 把上面代码放到公用的地方 2.

  • js弹出框轻量级插件jquery.boxy使用介绍

    当你需要使用弹出框时,当然可以使用jquery-ui,artdiag,blockUI等等,但今天我介绍一个轻量级的插件 boxy!它可以把美工设计的弹出框很容易的体现出来,而且兼容性还不错! 复制代码 代码如下: <script type='text/javascript'> $(function() { $('#ask-actuator').click(function() { Boxy.ask("How are you feeling?", ["Great&q

  • jquery ui dialog ie8出现滚动条的解决方法

    此问题在UI1.7就出现,到了UI1.8也未修复,真不知道该怎么说好.. JQUI 开发提交BUG的帖子:http://dev.jqueryui.com/ticket/3623 解决办法相当不科学~ 我的解决办法,个人感觉好过那个,因为我只隐藏横的滚动条,呵呵 附上修改的代码: 修改:jquery.ui.dialog.js 复制代码 代码如下: var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-w

  • 浅析JQuery UI Dialog的样式设置问题

    最近在用一个JQUERY UI Dialog的插件,感觉特别强大,但样式设置比较麻烦,研究了俩天终于搞定了. 运行插件,需要的环境如下 <script src="../../JS/jquery-1.4.2.js" type="text/javascript"></script> <script src="../JS/jquery.ui.js" type="text/javascript">&

  • jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)

    功能:zhou en ce同学最近写了个基于jquery的信息弹出插件showInfoDialog,该插件对背景进行遮罩,然后弹出信息显示框,信息显示种类包括: 一.信息种类说明: 1.1.操作成功信息 1.2.错误信息 1.3.警告信息 1.4.通知信息 二.使用说明 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4

随机推荐