基于jQuery的彈出警告對(duì)話框美化插件(警告,確認(rèn)和提示)
更新時(shí)間:2010年06月10日 23:46:52 作者:
jQuery Alert Dialogs (Alert, Confirm, & Prompt Replacements)(翻譯)
前不久在官方網(wǎng)站是看見這個(gè)插件,所以今天趁有空就看了一下,隨便給大家共享一下。也許你早已知道了
,如果是這樣那請(qǐng)?zhí)^,不要拍磚。
這個(gè)Jquery插件的目的是替代JavaScript的標(biāo)準(zhǔn)函數(shù)alert(),confirm(),和 prompt()。這個(gè)插件有
如下這些特點(diǎn):
1:這個(gè)插件可以使你可以支持你自己的css制定。使你的網(wǎng)站看起來更專業(yè)。
2:允許你自定義對(duì)話框的標(biāo)題。
3:在IE7中,可以使你避免使用JavaScript 的prompt()函數(shù)帶來的頁(yè)面重新加載。
4:這些方法都模擬了Windows的模式對(duì)話框。在你改變改變?yōu)g覽器窗口大小時(shí)候,它能夠自適應(yīng)用戶
窗口的調(diào)整。
5:如果你引入了jQuery UI Draggable plugin插件,那這個(gè)插件也可以被自由拖動(dòng)。
先在這里說插件的下載地址,以供有需之人下載:
http://labs.abeautifulsite.net/projects/js/jquery/alerts/jquery.alerts-1.1.zip
一:首先在<head></head>導(dǎo)入JQuery,jquery.ui.draggable
和jquery.alerts的 css、js文件。
<script src="/path/to/jquery.js" type="text/javascript"></script>
<script src="/path/to/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="/path/to/jquery.alerts.js" type="text/javascript"></script>
<link href="/path/to/jquery.alerts.css" rel="stylesheet" type="text/css" media="screen" />
為了在iE中正確的使用alert插件,你還得在Page中加入何時(shí)DTD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
二:使用
我們可以用下列方式來使用這個(gè)Jquery插件。
jAlert(message, [title, callback])
jConfirm(message, [title, callback])
jPrompt(message, [value, title, callback])
注:不同于Javascript標(biāo)準(zhǔn)函數(shù),我們可以在message中使用HTML參數(shù)顯示你的提示信息。
三:兼容性:
alert插件要求我們必須使用JQuery1.2.6或以上的jQuery包。
已經(jīng)被測(cè)試能夠在IE6、IE7、FF2、FF3、Safari 3 、Chrome 、Opera 9瀏覽器上很好的運(yùn)行。
四:Demo:注:在Demo中么有引入dragonable插件所以不能拖拽
Test Alert
jAlert('This is a custom alert box;
<a href=\"http://www.cnblogs.com/whitewolf/\">
本示例來自破浪博客</a>',
'Alert Dialog');
Test Confirm
jConfirm('Can you confirm this?
<a href=\"http://www.cnblogs.com/whitewolf/\">
本示例來自破浪博客</a>',
'Confirmation Dialog', function(r) {
jAlert('Confirmed: ' + r, 'Confirmation Results');
});
Test Prompt
jPrompt('Type something:<
a href=\"http://www.cnblogs.com/whitewolf/\">
本示例來自破浪博客</a>',
'WhiteWolf', 'Prompt Dialog', function(r) {
if( r ) alert('You entered ' + r);
});
關(guān)于jConfirm回傳的解決方案
我趁今天有空就考慮了下。我覺得lastwinter問這個(gè)問題應(yīng)該是關(guān)于ASP.NET的回傳問題,這主要是jConfirm這個(gè)為CallBack回調(diào),
他是異步的,并非同步。
所以我嘗試了下阻止事件的冒泡,并當(dāng)選擇為true是自動(dòng)回傳。用LinkButton測(cè)試(Button不同于這個(gè)解決的方案在后面解釋)
現(xiàn)貼出LinkButton的CODE DEMO:
關(guān)于jConfirm回傳DEMO
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 runat="server">
<title></title>
<script src="Script/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="Script/jquery.alerts-1.1/jquery.alerts.js" type="text/javascript"></script>
<link href="Script/jquery.alerts-1.1/jquery.alerts.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<asp:LinkButton ID="LinkButton1" runat="server" onclick="Button1_Click" >LinkButton</asp:LinkButton>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<div>
</div>
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#<%=LinkButton1.ClientID %>").click(function(event) {
jConfirm("test", "test jconfirm", function(r) {
if (r) {
<%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %>
}
});
event.stopPropagation();
event.preventDefault();
});
});
</script>
</body>
</html>
LinkButton1 Button Click CODE
protected void Button1_Click(object sender, EventArgs e)
{
this.Label1.Text = DateTime.Now.ToString();
}
主要為先阻止事件的冒泡event.stopPropagation();event.preventDefault(); 在jConfirm的callback回調(diào)函數(shù)中判斷是否需要回傳,
<%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %>;;
點(diǎn)擊LinkButton1是效果為:

點(diǎn)擊Cancel時(shí)候就不會(huì)回傳,當(dāng)ok時(shí)候就會(huì)發(fā)生回傳更新時(shí)間:

對(duì)于我們的LinkButton的實(shí)現(xiàn)是在輸出的客戶端Html代碼有腳本自動(dòng)回傳,而Button這是HTML元素submit,提交,
所以在這兩個(gè)的區(qū)別下,LinkButton就多了幾處javascript 代碼:
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
和 input Hidden
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
上面所說的意思就是如果要用Button實(shí)現(xiàn)同樣的示例,我們必須保證我的輸出客戶端的代碼有這些回傳腳本注冊(cè),還有就是回傳為
<%=Page.ClientScript.GetPostBackEventReference(Button1,"") %>。所以我覺得用LinkButton更適合。
,如果是這樣那請(qǐng)?zhí)^,不要拍磚。
這個(gè)Jquery插件的目的是替代JavaScript的標(biāo)準(zhǔn)函數(shù)alert(),confirm(),和 prompt()。這個(gè)插件有
如下這些特點(diǎn):
1:這個(gè)插件可以使你可以支持你自己的css制定。使你的網(wǎng)站看起來更專業(yè)。
2:允許你自定義對(duì)話框的標(biāo)題。
3:在IE7中,可以使你避免使用JavaScript 的prompt()函數(shù)帶來的頁(yè)面重新加載。
4:這些方法都模擬了Windows的模式對(duì)話框。在你改變改變?yōu)g覽器窗口大小時(shí)候,它能夠自適應(yīng)用戶
窗口的調(diào)整。
5:如果你引入了jQuery UI Draggable plugin插件,那這個(gè)插件也可以被自由拖動(dòng)。
先在這里說插件的下載地址,以供有需之人下載:
http://labs.abeautifulsite.net/projects/js/jquery/alerts/jquery.alerts-1.1.zip
一:首先在<head></head>導(dǎo)入JQuery,jquery.ui.draggable
和jquery.alerts的 css、js文件。
<script src="/path/to/jquery.js" type="text/javascript"></script>
<script src="/path/to/jquery.ui.draggable.js" type="text/javascript"></script>
<script src="/path/to/jquery.alerts.js" type="text/javascript"></script>
<link href="/path/to/jquery.alerts.css" rel="stylesheet" type="text/css" media="screen" />
為了在iE中正確的使用alert插件,你還得在Page中加入何時(shí)DTD:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
二:使用
我們可以用下列方式來使用這個(gè)Jquery插件。
jAlert(message, [title, callback])
jConfirm(message, [title, callback])
jPrompt(message, [value, title, callback])
注:不同于Javascript標(biāo)準(zhǔn)函數(shù),我們可以在message中使用HTML參數(shù)顯示你的提示信息。
三:兼容性:
alert插件要求我們必須使用JQuery1.2.6或以上的jQuery包。
已經(jīng)被測(cè)試能夠在IE6、IE7、FF2、FF3、Safari 3 、Chrome 、Opera 9瀏覽器上很好的運(yùn)行。
四:Demo:注:在Demo中么有引入dragonable插件所以不能拖拽
Test Alert
復(fù)制代碼 代碼如下:
jAlert('This is a custom alert box;
<a href=\"http://www.cnblogs.com/whitewolf/\">
本示例來自破浪博客</a>',
'Alert Dialog');
Test Confirm
復(fù)制代碼 代碼如下:
jConfirm('Can you confirm this?
<a href=\"http://www.cnblogs.com/whitewolf/\">
本示例來自破浪博客</a>',
'Confirmation Dialog', function(r) {
jAlert('Confirmed: ' + r, 'Confirmation Results');
});
Test Prompt
復(fù)制代碼 代碼如下:
jPrompt('Type something:<
a href=\"http://www.cnblogs.com/whitewolf/\">
本示例來自破浪博客</a>',
'WhiteWolf', 'Prompt Dialog', function(r) {
if( r ) alert('You entered ' + r);
});
關(guān)于jConfirm回傳的解決方案
我趁今天有空就考慮了下。我覺得lastwinter問這個(gè)問題應(yīng)該是關(guān)于ASP.NET的回傳問題,這主要是jConfirm這個(gè)為CallBack回調(diào),
他是異步的,并非同步。
所以我嘗試了下阻止事件的冒泡,并當(dāng)選擇為true是自動(dòng)回傳。用LinkButton測(cè)試(Button不同于這個(gè)解決的方案在后面解釋)
現(xiàn)貼出LinkButton的CODE DEMO:
關(guān)于jConfirm回傳DEMO
復(fù)制代碼 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!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 runat="server">
<title></title>
<script src="Script/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="Script/jquery.alerts-1.1/jquery.alerts.js" type="text/javascript"></script>
<link href="Script/jquery.alerts-1.1/jquery.alerts.css" rel="stylesheet" type="text/css" />
</head>
<body>
<form id="form1" runat="server">
<asp:LinkButton ID="LinkButton1" runat="server" onclick="Button1_Click" >LinkButton</asp:LinkButton>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<div>
</div>
</form>
<script type="text/javascript">
$(document).ready(function() {
$("#<%=LinkButton1.ClientID %>").click(function(event) {
jConfirm("test", "test jconfirm", function(r) {
if (r) {
<%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %>
}
});
event.stopPropagation();
event.preventDefault();
});
});
</script>
</body>
</html>
LinkButton1 Button Click CODE
復(fù)制代碼 代碼如下:
protected void Button1_Click(object sender, EventArgs e)
{
this.Label1.Text = DateTime.Now.ToString();
}
主要為先阻止事件的冒泡event.stopPropagation();event.preventDefault(); 在jConfirm的callback回調(diào)函數(shù)中判斷是否需要回傳,
<%= Page.ClientScript.GetPostBackClientHyperlink(LinkButton1,"") %>;;
點(diǎn)擊LinkButton1是效果為:

點(diǎn)擊Cancel時(shí)候就不會(huì)回傳,當(dāng)ok時(shí)候就會(huì)發(fā)生回傳更新時(shí)間:

對(duì)于我們的LinkButton的實(shí)現(xiàn)是在輸出的客戶端Html代碼有腳本自動(dòng)回傳,而Button這是HTML元素submit,提交,
所以在這兩個(gè)的區(qū)別下,LinkButton就多了幾處javascript 代碼:
復(fù)制代碼 代碼如下:
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
和 input Hidden
復(fù)制代碼 代碼如下:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
上面所說的意思就是如果要用Button實(shí)現(xiàn)同樣的示例,我們必須保證我的輸出客戶端的代碼有這些回傳腳本注冊(cè),還有就是回傳為
<%=Page.ClientScript.GetPostBackEventReference(Button1,"") %>。所以我覺得用LinkButton更適合。
您可能感興趣的文章:
- JQuery EasyUI 對(duì)話框的使用方法
- jQuery Dialog 彈出層對(duì)話框插件
- jQuery UI Dialog 創(chuàng)建友好的彈出對(duì)話框?qū)崿F(xiàn)代碼
- jquery刪除提示框彈出是否刪除對(duì)話框
- 修改jquery里的dialog對(duì)話框插件為框架頁(yè)(iframe) 的方法
- Confirmer JQuery確認(rèn)對(duì)話框組件
- jQuery EasyUI API 中文文檔 - Dialog對(duì)話框
- jQuery UI庫(kù)中dialog對(duì)話框功能使用全解析
- jBox 2.3基于jquery的最新多功能對(duì)話框插件 常見使用問題解答
- jquery實(shí)現(xiàn)點(diǎn)擊彈出對(duì)話框
相關(guān)文章
jQuery和hwSlider實(shí)現(xiàn)內(nèi)容響應(yīng)式可觸控滑動(dòng)切換效果附源碼下載(二)
這篇文章主要介紹了jQuery和hwSlider實(shí)現(xiàn)內(nèi)容響應(yīng)式可觸控滑動(dòng)切換效果附源碼下載(二)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06jQuery點(diǎn)擊自身以外地方關(guān)閉彈出層的簡(jiǎn)單實(shí)例
本篇文章主要是對(duì)jQuery點(diǎn)擊自身以外地方關(guān)閉彈出層的簡(jiǎn)單實(shí)例進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12jQuery實(shí)現(xiàn)內(nèi)容定時(shí)切換效果完整實(shí)例
這篇文章主要介紹了jQuery實(shí)現(xiàn)內(nèi)容定時(shí)切換效果,以完整實(shí)例形式較為詳細(xì)的分析了jQuery結(jié)合時(shí)間函數(shù)針對(duì)內(nèi)容的定時(shí)切換顯示相關(guān)技巧,需要的朋友可以參考下2016-04-04jquery插件validation實(shí)現(xiàn)驗(yàn)證身份證號(hào)等
這篇文章主要介紹了jquery插件validation實(shí)現(xiàn)驗(yàn)證身份證號(hào)、護(hù)照、電話號(hào)碼、email十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06JQuery實(shí)現(xiàn)動(dòng)態(tài)表格點(diǎn)擊按鈕表格增加一行
動(dòng)態(tài)表格,功能為點(diǎn)擊添加按鈕,表格增加一行并給其name屬性賦予的值,點(diǎn)擊刪除,自動(dòng)刪除這一行,具體實(shí)現(xiàn)如下2014-08-08鼠標(biāo)經(jīng)過出現(xiàn)氣泡框的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)硪黄髽?biāo)經(jīng)過出現(xiàn)氣泡框的簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03