使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体_jquery
模态窗体已经成为Web开发人员设计界面时经常要使用的传输数据的方式。通过模态窗口,可以提高网站的可用性。正好项目的需要,有个客户想要模态弹出的窗体来提交网站的反馈,经过一番测试实现了,我使用jQuery fancybox插件来创建一个漂亮的模态窗体,提交表单的数据在服务器端实现Ajax调用。你可以在你的邮件里收到用户发送的反馈消息
html代码
header部分主要的JS文件如下引入jquery代码和fancybox代码
演示
首先,从官网下载最新的Fancybox,并解压缩。核心的HTML页面代码是非常简单的,这里有一个隐藏的DIV,当用户单击href链接时候,打开一个模态窗口。
设置文本框的颜色,大小,获得焦点下的样式等等,使用: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默认代码
$(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 个字母,才会提交表单。
// 如果两个字段验证通过接下来发送消息
//点击发送按钮之后 ,按钮被替换成“发送中”这样的文字提示,目的是为了防止用户在点击提交,提示也更人性化
$("#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()。
$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";
}
演示

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Lorsque de nombreux amis changent de téléphone Apple, ils souhaitent importer toutes les données de l'ancien téléphone vers le nouveau téléphone. En théorie, c'est tout à fait réalisable, mais en pratique, il est impossible de « transférer toutes » les données. Énumérez plusieurs façons de « transférer une partie des données ». 1. iTunes est un logiciel préinstallé sur les téléphones mobiles Apple. Il peut être utilisé pour migrer toutes les données des anciens téléphones mobiles, mais il doit être utilisé conjointement avec un ordinateur. La migration peut être effectuée en installant iTunes sur l'ordinateur, puis en connectant le téléphone et l'ordinateur via un câble de données, en utilisant iTunes pour sauvegarder les applications et les données du téléphone, et enfin en restaurant la sauvegarde sur le nouveau téléphone Apple. 2. iCloudiCloud est l'outil « espace cloud » exclusif d'Apple. Vous pouvez d'abord vous connecter à votre ancien téléphone.

Guide d'appel ReactAPI : Comment interagir avec et transférer des données vers l'API backend Présentation : Dans le développement Web moderne, interagir avec et transférer des données vers l'API backend est une exigence courante. React, en tant que framework frontal populaire, fournit des outils et fonctionnalités puissants pour simplifier ce processus. Cet article explique comment utiliser React pour appeler l'API backend, y compris les requêtes de base GET et POST, et fournit des exemples de code spécifiques. Installez les dépendances requises : Tout d'abord, assurez-vous qu'Axi est installé dans le projet

Avec le développement de la science et de la technologie, la communication en réseau est devenue l’un des outils importants de transmission de l’information dans la société moderne. Mais dans le même temps, la transmission d’informations sur le réseau est confrontée à des risques d’attaques malveillantes et de vol, la sécurité est donc particulièrement importante. C’est sur cette base qu’est né le protocole HTTPS. Il s'agit d'un protocole qui ajoute le cryptage SSL/TLS au protocole HTTP pour assurer la sécurité de la transmission réseau. En tant que langage largement utilisé dans le développement de réseaux, Java fournit naturellement une API riche pour prendre en charge le protocole HTTPS. Cet article sera

PHPtraitDTO : Un outil clé pour optimiser le processus de transfert de données, des exemples de code spécifiques sont requis Présentation : Dans le développement PHP, le transfert de données est une tâche très courante, comme la transmission de données du contrôleur à la vue, la transmission de données de l'interface au front fin, etc Cependant, lors du processus de transmission des données, celles-ci doivent souvent être traitées, converties et encapsulées, ce qui peut entraîner une redondance du code et des difficultés de maintenance. Pour résoudre ce problème, nous pouvons utiliser PHPtraitDTO (DataTransfer

PHPtraitDTO : Un outil clé pour optimiser le processus de transmission de données, des exemples de code spécifiques sont nécessaires Introduction : Au cours du processus de développement, la transmission de données est une exigence très courante, en particulier lorsque les données sont transférées entre différents niveaux. Lors du processus de transmission de ces données, nous devons souvent traiter, vérifier ou convertir les données pour répondre aux différents besoins de l'entreprise. Afin d'améliorer la lisibilité et la maintenabilité du code, nous pouvons utiliser PHPtraitDTO (DataTransferObject) pour optimiser

Introduction à la pratique des fonctions de contrôle des périphériques et de transmission de données du C++ dans le développement de systèmes embarqués : En tant que technologie avec un large éventail d'applications, les systèmes embarqués sont largement utilisés dans de nombreux domaines, tels que l'automobile, les appareils électroménagers, les équipements médicaux, etc. Dans le développement de systèmes embarqués, le contrôle des périphériques et la transmission de données constituent une fonction très importante. Cet article présentera comment utiliser le langage C++ pour implémenter les fonctions de contrôle et de transmission de données des périphériques et fournira des exemples de code pratiques. 1. Pratique de la fonction de contrôle des périphériques C++ Dans les systèmes embarqués, le contrôle des périphériques fait référence à la

Comment appeler l'interface API en PHP pour réaliser la transmission et le traitement des données ? Avec le développement d’Internet, l’utilisation de divers services Web et interfaces API devient de plus en plus courante. Une API (Application Programming Interface) est une spécification technique qui permet l'interaction de données entre différentes applications. En tant que langage de script largement utilisé dans le développement Web, PHP dispose de capacités d'appel d'API puissantes et flexibles. Cet article explique comment utiliser le langage PHP pour appeler l'interface API afin de réaliser la transmission et le traitement des données. 1. Préparation avant d'appeler l'API

Communication PHP : Comment gérer les interruptions de transfert de données ? IntroductionPendant le processus de transmission des données, la transmission des données peut être interrompue en raison de l'instabilité du réseau ou d'autres raisons. Pour les développeurs, la gestion des interruptions de transfert de données est une question très importante. Cet article expliquera comment gérer l'interruption du transfert de données en PHP et fournira des exemples de code pertinents. Méthodes de gestion des interruptions de transmission de données : Définition du délai d'attente Lors de la transmission de données, vous pouvez définir un délai d'attente approprié. Si la transmission des données n'est pas terminée dans le délai d'attente,
