Jadual Kandungan
发送消息给我们
你有新的消息
Rumah hujung hadapan web tutorial js 使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体_jquery

使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体_jquery

May 16, 2016 pm 05:43 PM
Pemindahan data

模态窗体已经成为Web开发人员设计界面时经常要使用的传输数据的方式。通过模态窗口,可以提高网站的可用性。正好项目的需要,有个客户想要模态弹出的窗体来提交网站的反馈,经过一番测试实现了,我使用jQuery fancybox插件来创建一个漂亮的模态窗体,提交表单的数据在服务器端实现Ajax调用。你可以在你的邮件里收到用户发送的反馈消息

html代码
header部分主要的JS文件如下引入jquery代码和fancybox代码

复制代码 代码如下:




演示
首先,从官网
下载最新的Fancybox,并解压缩。核心的HTML页面代码是非常简单的,这里有一个隐藏的DIV,当用户单击href链接时候,打开一个模态窗口。
复制代码 代码如下:


Send us feedback from the modal window.

有本事你点我




发送消息给我们









 

CSS样式表

设置文本框的颜色,大小,获得焦点下的样式等等,使用:hover:active  来显示状态。

复制代码 代码如下:

.txt {
display: inline-block;
color: #676767;
width: 420px;
font-family: Arial, Tahoma, sans-serif;
margin-bottom: 10px;
border: 1px dotted #ccc;
padding: 5px 9px;
font-size: 1.2em;
line-height: 1.4em;
}

.txtarea {
display: block;
resize: none;
color: #676767;
font-family: Arial, Tahoma, sans-serif;
margin-bottom: 10px;
width: 500px;
height: 150px;
border: 1px dotted #ccc;
padding: 5px 9px;
font-size: 1.2em;
line-height: 1.4em;
}

.txt:focus,
.txtarea:focus {
border-style: solid;
border-color: #bababa;
color: #444;
}

input.error,
textarea.error {
border-color: #973d3d;
border-style: solid;
background: #f0bebe;
color: #a35959;
}

input.error:focus,
textarea.error:focus {
border-color: #973d3d;
color: #a35959;
}

我定义了一个错误的css类,结合jquery用来检测用户输入的数据是否正确,输入错误数据会使字段文字,边框和背景变成深色。直到用户输入有效的数据字段颜色将恢复正常。

复制代码 代码如下:

#send {
color: #dee5f0;
display: block;
cursor: pointer;
padding: 5px 11px;
font-size: 1.2em;
border: solid 1px #224983;
border-radius: 5px;
background: #1e4c99;
background: -webkit-gradient(linear, left top, left bottom, from(#2f52b7), to(#0e3a7d));
background: -moz-linear-gradient(top, #2f52b7, #0e3a7d);
background: -webkit-linear-gradient(top, #2f52b7, #0e3a7d);
background: -o-linear-gradient(top, #2f52b7, #0e3a7d);
background: -ms-linear-gradient(top, #2f52b7, #0e3a7d);
background: linear-gradient(top, #2f52b7, #0e3a7d);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#2f52b7', endColorstr='#0e3a7d');
}

#send:hover {
background: #183d80;
background: -webkit-gradient(linear, left top, left bottom, from(#284f9d), to(#0c2b6b));
background: -moz-linear-gradient(top, #284f9d, #0c2b6b);
background: -webkit-linear-gradient(top, #284f9d, #0c2b6b);
background: -o-linear-gradient(top, #284f9d, #0c2b6b);
background: -ms-linear-gradient(top, #284f9d, #0c2b6b);
background: linear-gradient(top, #284f9d, #0c2b6b);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#284f9d', endColorstr='#0c2b6b');
}

#send:active {
color: #8c9dc0;
background: -webkit-gradient(linear, left top, left bottom, from(#0e387d), to(#2f55b7));
background: -moz-linear-gradient(top, #0e387d, #2f55b7);
background: -webkit-linear-gradient(top, #0e387d, #2f55b7);
background: -o-linear-gradient(top, #0e387d, #2f55b7);
background: -ms-linear-gradient(top, #0e387d, #2f55b7);
background: linear-gradient(top, #0e387d, #2f55b7);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0e387d', endColorstr='#2f55b7');
}

CSS 按钮我使用 CSS3来创建线型渐变,代码如上

使用 Fancybox

页面加载元素完成之后,调用Fancybox默认代码

复制代码 代码如下:

$(document).ready(function() {
$(".modalbox").fancybox();
$("#contact").submit(function() { return false; });//禁用默认的窗体提交

代码的第二行禁用默认的联系人表单提交动作。为什么呢?因此这样我们可以处理自己的单击事件,并通过 Ajax 传递数据。在用户提交表单后,我们需要得到 (电子邮件和消息) 两个字段的当前值。我们还想要检查电子邮件地址是否有效和消息长度是否超过规定的长度值
复制代码 代码如下:

$("#send").on("click", function(){
var emailval = $("#email").val();
var msgval = $("#msg").val();
var msglen = msgval.length;
var mailvalid = validateEmail(emailval);

if(mailvalid == false) {
$("#email").addClass("error");
}
else if(mailvalid == true){
$("#email").removeClass("error");
}

if(msglen $("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}

上面jquery代码使用一些逻辑语句。直到电子邮件有效和消息的长度超过 4 个字母,才会提交表单。

发送Ajax 请求
通过上面的onclick事件,需要将表单数据发送到 PHP。,我们将在我们的收件箱中收到电子邮件。
复制代码 代码如下:

// 如果两个字段验证通过接下来发送消息

//点击发送按钮之后 ,按钮被替换成“发送中”这样的文字提示,目的是为了防止用户在点击提交,提示也更人性化

$("#send").replaceWith("发送中...");
$.ajax({
type: 'POST',
url: 'sendmessage.php',
data: $("#contact").serialize(),
success: function(data) {
if(data == "true") {
$("#contact").fadeOut("fast", function(){
$(this).before("

提交成功! 您的留言已经发送, 谢谢 :)

");

setTimeout("$.fancybox.close()", 1000);
});
}
}
});
}
});

这里使用serialize(),方法来序列化提交的ajax数据,使得生成标准的URL编码
服务器响应成功之后,隐藏弹出的窗体,并显示一条成功消息。我使用 setTimeout() 方法来关闭 fancybox ,这里我设置一秒钟后隐藏窗体。要执行此操作的 JS 代码是 $.fancybox.close()。

 

使用 PHP发送邮件
sendmessage.php 接受用户输入的变量。然后调用mail尝试发送它,发送成功返回"true"否则返回false
复制代码 代码如下:

$sendto = "2495371937@qq.com";//定义邮件的接收者
$usermail = $_POST['email'];//获取电子邮件
$content = nl2br($_POST['msg']);//获取消息

$subject = "你有新的消息";
$headers = "来自: " . strip_tags($usermail) . "\r\n";
$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";
$headers .= "MIME-Version: 1.0\r\aan";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";

$msg = "";
$msg .= "

你有新的消息

\r\n";
$msg .= "来自: ".$usermail."\r\n";
$msg .= "内容: ".$content."\r\n";
$msg .= "";
if(@mail($sendto, $subject, $msg, $headers)) {
echo "true";
} else {
echo "false";
}

演示
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara memindahkan semua data antara dua iPhone Penjelasan terperinci: Cara memindahkan data daripada telefon lama Cara memindahkan semua data antara dua iPhone Penjelasan terperinci: Cara memindahkan data daripada telefon lama Mar 18, 2024 pm 06:31 PM

Apabila ramai rakan menukar telefon Apple mereka, mereka ingin mengimport semua data dalam telefon lama ke telefon baru Secara teori, ia benar-benar boleh dilaksanakan, tetapi dalam praktiknya, adalah mustahil untuk "memindahkan semua" artikel isu ini Senaraikan beberapa cara untuk "memindahkan sebahagian daripada data". 1. iTunes ialah perisian pra-pasang pada telefon mudah alih Apple Ia boleh digunakan untuk memindahkan semua data dalam telefon mudah alih lama, tetapi ia perlu digunakan bersama dengan komputer. Penghijrahan boleh diselesaikan dengan memasang iTunes pada komputer, kemudian menyambungkan telefon dan komputer melalui kabel data, menggunakan iTunes untuk menyandarkan apl dan data dalam telefon, dan akhirnya memulihkan sandaran kepada telefon Apple baharu. 2. iCloudiCloud ialah alat "ruang awan" eksklusif Apple Anda boleh log masuk ke telefon lama anda terlebih dahulu.

Panduan Panggilan API React: Cara berinteraksi dan memindahkan data dengan API bahagian belakang Panduan Panggilan API React: Cara berinteraksi dan memindahkan data dengan API bahagian belakang Sep 26, 2023 am 10:19 AM

Panduan Panggilan ReactAPI: Cara berinteraksi dan memindahkan data ke API bahagian belakang Gambaran Keseluruhan: Dalam pembangunan web moden, berinteraksi dengan dan memindahkan data ke API bahagian belakang adalah keperluan biasa. React, sebagai rangka kerja bahagian hadapan yang popular, menyediakan beberapa alat dan ciri yang berkuasa untuk memudahkan proses ini. Artikel ini akan memperkenalkan cara menggunakan React untuk memanggil API bahagian belakang, termasuk permintaan GET dan POST asas serta memberikan contoh kod khusus. Pasang kebergantungan yang diperlukan: Pertama, pastikan Axi dipasang dalam projek

Menggunakan HTTPS untuk penghantaran data dalam pembangunan API Java Menggunakan HTTPS untuk penghantaran data dalam pembangunan API Java Jun 18, 2023 pm 10:43 PM

Dengan perkembangan sains dan teknologi, komunikasi rangkaian telah menjadi salah satu alat penting untuk penghantaran maklumat dalam masyarakat moden. Tetapi pada masa yang sama, penghantaran maklumat pada rangkaian menghadapi risiko serangan berniat jahat dan kecurian, jadi keselamatan amat penting. Berdasarkan ini, protokol HTTPS wujud. Ia adalah protokol yang menambah penyulitan SSL/TLS pada protokol HTTP untuk memastikan keselamatan penghantaran rangkaian. Sebagai bahasa yang digunakan secara meluas dalam pembangunan rangkaian, Java secara semulajadi menyediakan API yang kaya untuk menyokong protokol HTTPS. Artikel ini akan

DTO ciri PHP: alat utama untuk mengoptimumkan proses pemindahan data DTO ciri PHP: alat utama untuk mengoptimumkan proses pemindahan data Oct 12, 2023 pm 02:33 PM

PHPtraitDTO: Alat utama untuk mengoptimumkan proses pemindahan data, contoh kod khusus diperlukan Gambaran Keseluruhan: Dalam pembangunan PHP, pemindahan data adalah tugas yang sangat biasa, seperti menghantar data dari pengawal ke paparan, menghantar data dari antara muka ke hadapan. akhir, dsb. Walau bagaimanapun, dalam proses penghantaran data, data selalunya perlu diproses, ditukar dan dikapsulkan, yang mungkin membawa kepada redundansi kod dan kesukaran untuk dikekalkan. Untuk menyelesaikan masalah ini, kita boleh menggunakan PHPtraitDTO (DataTransfer

DTO ciri PHP: alat utama untuk mengoptimumkan proses pemindahan data DTO ciri PHP: alat utama untuk mengoptimumkan proses pemindahan data Oct 12, 2023 pm 03:10 PM

PHPtraitDTO: Alat utama untuk mengoptimumkan proses penghantaran data, contoh kod khusus diperlukan Pengenalan: Semasa proses pembangunan, penghantaran data adalah keperluan yang sangat biasa, terutamanya apabila data dipindahkan antara tahap yang berbeza. Dalam proses penghantaran data ini, kami selalunya perlu memproses, mengesahkan atau menukar data untuk memenuhi keperluan perniagaan yang berbeza. Untuk meningkatkan kebolehbacaan dan kebolehselenggaraan kod, kami boleh menggunakan PHPtraitDTO (DataTransferObject) untuk mengoptimumkan

Amalan kawalan peranti persisian dan fungsi penghantaran data C++ dalam pembangunan sistem terbenam Amalan kawalan peranti persisian dan fungsi penghantaran data C++ dalam pembangunan sistem terbenam Aug 25, 2023 pm 07:10 PM

Pengenalan kepada amalan kawalan peranti persisian dan fungsi penghantaran data C++ dalam pembangunan sistem terbenam: Sebagai teknologi dengan pelbagai aplikasi, sistem terbenam digunakan secara meluas dalam banyak bidang, seperti kereta, peralatan rumah, peralatan perubatan, dsb. Dalam pembangunan sistem terbenam, kawalan peranti persisian dan penghantaran data adalah fungsi yang sangat penting. Artikel ini akan memperkenalkan cara menggunakan bahasa C++ untuk melaksanakan fungsi kawalan dan penghantaran data peranti persisian, dan menyediakan contoh kod praktikal. 1. Amalan Fungsi Kawalan Peranti Peranti C++ Dalam sistem terbenam, kawalan peranti persisian merujuk kepada

Bagaimana untuk memanggil antara muka API dalam PHP untuk merealisasikan penghantaran dan pemprosesan data? Bagaimana untuk memanggil antara muka API dalam PHP untuk merealisasikan penghantaran dan pemprosesan data? Sep 06, 2023 am 08:21 AM

Bagaimana untuk memanggil antara muka API dalam PHP untuk merealisasikan penghantaran dan pemprosesan data? Dengan perkembangan Internet, penggunaan pelbagai perkhidmatan Web dan antara muka API menjadi semakin biasa. API (Antara Muka Pengaturcaraan Aplikasi) ialah spesifikasi teknikal yang membenarkan interaksi data antara aplikasi yang berbeza. Sebagai bahasa skrip yang digunakan secara meluas dalam pembangunan web, PHP mempunyai keupayaan panggilan API yang berkuasa dan fleksibel. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk memanggil antara muka API untuk merealisasikan penghantaran dan pemprosesan data. 1. Persediaan sebelum memanggil API

Komunikasi PHP: Bagaimana untuk mengendalikan gangguan pemindahan data? Komunikasi PHP: Bagaimana untuk mengendalikan gangguan pemindahan data? Aug 19, 2023 pm 10:33 PM

Komunikasi PHP: Bagaimana untuk mengendalikan gangguan pemindahan data? PengenalanSemasa proses penghantaran data, penghantaran data mungkin terganggu kerana ketidakstabilan rangkaian atau sebab lain. Bagi pembangun, cara mengendalikan gangguan pemindahan data adalah isu yang sangat penting. Artikel ini akan memperkenalkan cara mengendalikan gangguan penghantaran data dalam PHP dan memberikan contoh kod yang berkaitan. Kaedah untuk mengendalikan gangguan penghantaran data: Menetapkan tempoh tamat masa Semasa melakukan penghantaran data, anda boleh menetapkan tempoh tamat masa yang sesuai Jika penghantaran data tidak selesai dalam tempoh tamat masa,

See all articles