<div class="form">
<dl>
<dt>您的称呼<small>(必填)</small></dt>
<dd><input id="name" type="text" name="name" class="formText" require></dd>
</dl>
<dl>
<dt>您的邮箱<small>(必填)</small></dt>
<dd><input id="email" type="text" name="email" class="formText" require></dd>
</dl>
<dl>
<dt>联系电话</dt>
<dd><input id="phone" type="text" name="phone" class="formText"></dd>
</dl>
<dl>
<dt>您的想法/意见<small>(必填)</small></dt>
<dd><textarea id="message" name="message" class="formText"></textarea></dd>
</dl>
<div class="formBtn" onclick="btnSend()">发送留言</div>
<script>
//提交数据
function btnSend() {
$("#txtMsg").text("");
var name = $("#name").val();//您的称呼
var email = $("#email").val();//您的邮箱
var phone = $("#phone").val();//联系电话
var message = $("#message").val();//您的想法 if (name.length == ) {
alert("称呼不能为空!");
return;
}
if (email.length == ) {
alert("邮箱不能为空!");
return;
} var myreg = /^([a-zA-Z0-]+[_|\_|\.]?)*[a-zA-Z0-]+@([a-zA-Z0-]+[_|\_|\.]?)*[a-zA-Z0-]+\.[a-zA-Z]{,}$/;
if (!myreg.test(email)) {
alert('请输入有效的E_mail!');
return;
} if (message.length < ) {
alert("意见不能不能少于20个字符!");
return;
}
$(".formBtn").val("正在发送,请稍等!"); var postData = "name=" + name + "&email=" + email + "&phone=" + phone + "&message=" + message; //向后台发送处理数据
$.ajax({
type: "POST", //用POST方式传输
dataType: "text", //数据格式:JSON
url: '/Email.ashx', //目标地址
data: postData,
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("发送失败,请联系在线客服!");
},
success: function (msg) {
$(".formBtn").val("发送留言");
alert(msg);
}
});
} </script>
</div>

Email.ashx

<%@ WebHandler Language="C#" Class="Email" %>

using System;
using System.Web;
using Ky.Common; public class Email : IHttpHandler
{ public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain"; string name = KYRequest.GetFormString("name");//您的称呼
string email = KYRequest.GetFormString("email");//您的邮箱
string phone = KYRequest.GetFormString("phone");//联系电话
string message = KYRequest.GetFormString("message");//您的想法 if (string.IsNullOrEmpty(name))
{
context.Response.Write("您的称呼为空");
return;
}
if (string.IsNullOrEmpty(email))
{
context.Response.Write("您的邮箱为空");
return;
}
if (string.IsNullOrEmpty(message))
{
context.Response.Write("想法/意见为空");
return;
}
string body = "时间:" + DateTime.Now + "<br>IP:" + KYRequest.GetIP() + "<br>称呼:" + name + "<br>邮箱:" + email + "<br>电话:" + phone + "<br>想法/意见:" + message; try
{
string wwwEmail = System.Configuration.ConfigurationManager.AppSettings["wwwEmail"].ToString();
SendMail.Send(wwwEmail, "【邮件助手】您的网站收到留言" + DateTime.Now, body);
context.Response.Write("发送成功,感谢您的支持。");
}
catch
{
context.Response.Write("Web.config未设置接收邮箱,发送失败");
}
} public bool IsReusable
{
get
{
return false;
}
} }

jquery ajax 发送邮件例子的更多相关文章

  1. jquery ajax POST 例子详解

    function test(){ $.ajax({ //提交数据的类型 POST GET type:"POST", //提交的网址 url:"testLogin.aspx ...

  2. Jquery.ajax 详细解释 通过Http请求加载远程数据

    首先请看一个Jquery.ajax的例子 $.ajax({ type: "GET", url: "/api/SearchApi/GetResults", dat ...

  3. php+jquery+ajax+json简单小例子

    直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...

  4. jquery ajax跨域请求后台的简单例子

    一.简介AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新. ajax() 方法通过 HTTP 请求加载远程数据. 该方法是 jQuery 底层 AJAX 实现.简 ...

  5. WCF入门教程(四)通过Host代码方式来承载服务 一个WCF使用TCP协议进行通协的例子 jquery ajax调用WCF,采用System.ServiceModel.WebHttpBinding System.ServiceModel.WSHttpBinding协议 学习WCF笔记之二 无废话WCF入门教程一[什么是WCF]

    WCF入门教程(四)通过Host代码方式来承载服务 Posted on 2014-05-15 13:03 停留的风 阅读(7681) 评论(0) 编辑 收藏 WCF入门教程(四)通过Host代码方式来 ...

  6. Django1.7+JQuery+Ajax集成小例子

    Ajax的出现让Web展现了更新的活力,基本所有的语言,都动态支持Ajax与起服务端进行通信,并在页面实现无刷新动态交互. 下面是散仙使用Django+Jquery+Ajax的方式来模拟实现了一个验证 ...

  7. jQuery Ajax 方法调用 Asp.Net WebService 以及调用aspx.cs中方法的详细例子

    一.jQuery Ajax 方法调用 Asp.Net WebService (引自Terry Feng) Html文件 <!DOCTYPE html PUBLIC "-//W3C//D ...

  8. jquery ajax请求后台 的简单例子

    jQuery.ajax(url,[settings]) 概述 通过 HTTP 请求加载远程数据. jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax ...

  9. JQuery+Ajax+Struts2+Hibernate 实现完整的登录注册

    写在最前: 下午有招聘会,不想去,总觉得没有准备好,而且都是一些不对口的公司,可是又静不下心来,就来写个博客. 最近在仿造一个书城的网站:http://www.yousuu.com ,UI直接拿来用, ...

随机推荐

  1. Redis分布式锁---完美实现

    这几天在做项目缓存时候,因为是分布式的所以需要加锁,就用到了Redis锁,正好从网上发现两篇非常棒的文章,来和大家分享一下. 第一篇是简单完美的实现,第二篇是用到的Redisson. Redis分布式 ...

  2. xml解析多个结点方法(C#)

    解析多个结点的XML文件,格式如下: <?xml version="1.0" encoding="utf-8"?> <response> ...

  3. Matlab绘图基础——绘制三维曲线

    %% 绘制三维曲线 %plot3函数,其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同. %1.当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线. x0 = 0 ...

  4. Mac下安装virtualenv, 并在PyCharm中使用

    今天在安装一个leader写的package的时候,同事建议安装到虚拟环境中,再在PyCharm里使用该虚拟环境即可.此处记录下经过: 开发Python应用的时候,有时会遇到不同的Python应用依赖 ...

  5. servlet3.0注解loadOnStartup不起作用解决方案

    多次尝试3.0在源码中直接用注解配置loadOnStartup=1,即web应用启动时创建servlet实例,发现不起作用,但是在web.xml配置则可以正常运行.先上源码. package lee; ...

  6. 云计算之路-阿里云上-容器难容:优化自建 docker swarm 集群的部署

    在上周六遭遇阿里云容器服务 swarm 版的故障之后,我们决定还是走自建 docker swarm 之路,只要不是阿里云底层的问题,我们相信会找到办法解决或避开自建 docker swarm 不稳定的 ...

  7. C语言博客作业--一二维数组

    一.PTA实验作业 题目1(7-6) (1).本题PTA提交列表 (2)设计思路 //天数n:数组下标i:小时数h,分钟数m:对应书号的标签数组flag[1001] //总阅读时间sum初始化为0,借 ...

  8. 张金禹 C语言--第0次作业

    1:在填报专业的时候,我也犹豫了很久,但最后还是选择了计算机专业.因为在上大学之前我就对编程.设计等有浓厚的兴趣,但繁重的高中学习任务使我没有过多的去关注,所以我选择了计算机专业去培养我在这方面的兴趣 ...

  9. Java 后端微信小程序支付demo (网上说的坑里面基本上都有)

    Java 后端微信小程序支付 一.遇到的问题 1. 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试 2.签名错误 3.已经调起微信统一下单接口,可以拿到预支付ID,但是前端支付的时候 ...

  10. windows系统下安装 node.js (node.js安装及环境配置)

    node.js简介 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Node. ...