(function ($) {
$.SmsHelper = $.SmsHelper || {};
$.extend($.SmsHelper,
{
//插件具体实现代码
yzmnum: 60,
AjaxUrl: "/AjaxMethod/CommonSMS.ashx?key=GetSmsCode",
GetSmsCodeClick: function (phoneCode, obj) {
if (phoneCode == '') {
$.AmHelper.ShowMsg('请输入手机号');
return;
} var reg = /^1[358]\d{9}$/;
if (!reg.test(phoneCode)) {
$.AmHelper.ShowMsg("手机号码格式不正确!");
return;
} var objText = $(obj).val();
if (objText == '') {
objText = $(obj).text();
if (objText.indexOf('验证码') > -1) {
$.SmsHelper.GetSmsCodeEx(phoneCode, obj);
}
} else {
if (objText.indexOf('验证码') > -1) {
$.SmsHelper.GetSmsCode(phoneCode, obj);
}
}
}, //获得手机验证码
GetSmsCode: function (mobile, obj) {
$(obj).val('请稍后...' + $.SmsHelper.yzmnum);
$(obj).attr("disabled", true); var yzmtime = setInterval(function () {
$.SmsHelper.yzmnum--;
$(obj).val('请稍后...' + $.SmsHelper.yzmnum);
if ($.SmsHelper.yzmnum == 0) {
$(obj).val('获取验证码');
$(obj).attr("disabled", false);
clearInterval(yzmtime);
$.SmsHelper.yzmnum = 60;
}
}, 1000); if (mobile != "") {
$.ajax({
type: "post",
url: $.SmsHelper.AjaxUrl,
data: { "Mobile": mobile, "PageType": $.SmsHelper.smsPageType },
async: false,
dataType: "json",
success: function (msg) {
if (msg.returncode == "0") {
$.AmHelper.ShowMsg("验证码短信已发送");
} else {
$.AmHelper.ShowMsg(msg.message);
}
},
complete: function (XHR, TS) { XHR = null }
});
}
else {
$.AmHelper.ShowMsg('请填写手机号码!');
}
},
GetSmsCodeEx: function (mobile, obj, pageType) {
$(obj).text('请稍后...' + $.SmsHelper.yzmnum);
$(obj).attr("disabled", true); var yzmtime = setInterval(function () {
$.SmsHelper.yzmnum--;
$(obj).text('请稍后...' + $.SmsHelper.yzmnum);
if ($.SmsHelper.yzmnum == 0) {
$(obj).text('获取验证码');
$(obj).attr("disabled", false);
clearInterval(yzmtime);
$.SmsHelper.yzmnum = 60;
}
}, 1000); if (mobile != "") {
$.ajax({
type: "post",
url: $.SmsHelper.AjaxUrl,
data: { "Mobile": mobile, "PageType": smsPageType },
async: false,
dataType: "json",
success: function (msg) {
if (msg.returncode == "0") {
$.AmHelper.ShowMsg("验证码短信已发送");
} else {
$.AmHelper.ShowMsg(msg.message);
} },
complete: function (XHR, TS) { XHR = null }
});
}
else {
$.AmHelper.ShowMsg('请填写手机号码!');
}
} });
})(jQuery);

调用方式:

$.SmsHelper.GetSmsCodeClick();

Jquery 自定义插件写法(示例)的更多相关文章

  1. JQuery自定义插件详解之Banner图滚动插件

      前  言 JRedu JQuery是什么相信已经不需要详细介绍了.作为时下最火的JS库之一,JQuery将其"Write Less,Do More!"的口号发挥的极致.而帮助J ...

  2. 深入学习jQuery自定义插件

    原文地址:jQuery自定义插件学习 1.定义插件的方法 对象级别的插件扩展,即为jQuery类的实例增加方法, 调用:$(选择器).函数名(参数);      $(‘#id’).myPlugin(o ...

  3. 代码:jquery自定义插件 demo

    jquery自定义插件 demo 2016-1-13 只是一个简易的示例 <script type="text/javascript" src="http://cd ...

  4. jquery自定义插件——以 选项卡插件为例

    一直打算尝试自定义插件,终于付诸实践了,现在把内容发表出来,与大家共勉. 我是根据自己正在用的插件,模仿其源码,实现的自定义插件,完成之后,在网上看相关资料,对自定义插件部分,有了更明确的认识. jq ...

  5. jQuery自定义插件

    jQuery自定义插件 jQuery自定义插件按照功能分类,可以分为三类, 1>封装对象方法的插件,(也就是基于某个DOM元素的jQuery对象,局部的) 2>封装全局函数的插件,   ( ...

  6. 你的专属定制——JQuery自定义插件

        前  言 絮叨絮叨 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架).jQuery设计的宗 ...

  7. jQuery自定义插件--banner图滚动

    前言 jQuery是一个功能强大的库,提供了开发JavaScript项目所需的所有核心函数.很多时候我们使用jQuery的原因就是因为其使用插件的功能,然而,有时候我们还是需要使用自定义代码来扩展这些 ...

  8. fullpage的使用以及less, Sass的属性和JQuery自定义插件的声明和使用

    使用fullpage的步骤   1 导入JQuery.js fullpage,js fullpage.css 2 组建网页布局,最外层id="fullpage" 单页class=& ...

  9. jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)

    上一篇记录了BaiduTemplate模板引擎使用示例附源码,在此基础上对使用方法进行了封装 自定义插件jajaxrefresh.js 代码如下: //闭包限定命名空间 (function ($) { ...

随机推荐

  1. Partition does not start on physical sector boundary

    今天给一块硬盘分区,用fdisk按照默认步骤执行,遇到这个问题: [root@bogon ~]# fdisk /dev/sdfDevice contains neither a valid DOS p ...

  2. sql之强制索引

    1.今天我遇到一个问题,在处理百万级数据查询的时候,一般查询会很慢. 2.第一时间想到是建立联合索引,但是数据库存在多条索引的情况下,索引的执行是全部执行. 3.所以这里要按照特定的索引执行,就必须使 ...

  3. Sql2008 全文索引 简明教程

    在SQL Server 中提供了一种名为全文索引的技术,可以大大提高从长字符串里搜索数 据的速度,不用在用LIKE这样低效率的模糊查询了.   下面简明的介绍如何使用Sql2008 全文索引 一.检查 ...

  4. java程序调优系列(一)intern()代替equal()

    1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ne ...

  5. 深入浅出 Java Concurrency (5): 原子操作 part 4 CAS操作

    在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁). 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度 ...

  6. springmvc怎么在启动时自己执行一个线程

    之前使用springmvc的时候,都是写好controller和对应的数据库操作. 外界发请求的时候,controller进行一堆操作后返回相应的json数据. 似乎springmvc就是外界驱动的一 ...

  7. .net core 下的一个docker hello world

    接触 docker 有段时间了,发现docker这个东西,真是越用越爽. 那就从零开始跑一个 docker simple . 方法一: 步骤一: dotnet new mvc --name myweb ...

  8. XML解析的二种方法之Sax解析

    package com.huawei.xml; import java.io.InputStream;import java.util.Stack; import javax.xml.parsers. ...

  9. Workgroup&Domain(Realm)

    [工作组 Work Group] 在一个网络内,可能有成百上千台电脑,如果这些电脑不进行分组,都列在“网上邻居”内,可想而知会有多么乱.为了解决这一问题,Windows 9x/NT/2000就引用了“ ...

  10. sed的基础应用

    sed是一个非交互式的文本编辑器:sed一行一行的处理文件 sed有模式空间(主要活动空间)和缓存空间(辅助空间)两个空间: 模式空间(pattern space)将文件中的一行内容读取到临时缓冲区( ...