最近一直做ECSHOP商城的开发,常常会发现一些莫名奇妙的错误,ecshop本身有一种ajax的,好多都是因为ecshop本身的JS与外部冲突导致的,网上这样的情况也不少,看了很多,真正可以用的少之又少,所以结合自己的开发总结了一些: 本次的情况是:我在应用懒人加载效果jquery.lazyload.js jquery-1.6.2.min.js,所以把transport.js等去掉了,于是邮件订阅就失效了。 为了不利用transport.js 只能另想办法了。 在网上搜了一下,找好久才找到一篇靠谱的,与大家分享一下:
/*邮件订阅*/ $(".bnt_blue").click(function() { var email = $("#user_email").val(); if (check_email(email)) { $.ajax({ type: "get", url: "user.php?act=email_list", data: 'job=add&email=' + email, success: function(data) { alert(data); } }); } }); /*取消订阅*/ $(".bnt_bonus").click(function() { var email = $("#user_email").val(); if (check_email(email)) { $.ajax({ type: "get", url: "user.php?act=email_list", data: 'job=del&email=' + email, success: function(data) { alert(data); } }); } }); function check_email(str) { res = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; var re = new RegExp(res); if (str.match(re)) { return true; } else { alert("请输入正确的E-mail地址"); return false; } }结合以上代码重新修改了一下,也贴出来了: email_list.lbi
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <div class="mod1 mod2 blank email1"> <span class="lt"></span><span class="lb"></span><span class="rt"></span><span class="rb"></span> <div class="mod2con" style=" background:url(images/68ec_emailbg2.jpg) no-repeat right center;" > <h1 style="line-height:35px; text-indent:3px; font-weight:normal">Email订阅最新特惠信息:</h1> <input type="text" id="user_email" class="InputBorder" style="margin-bottom:9px;" size="25"/><br /> <input type="button" value="{$lang.email_list_ok}" id="bnt_blue" class="bnt_number2" /> <input type="button" value="{$lang.email_list_cancel}" id="bnt_bonus" class="bnt_number2" /> </div> </div> <script type="text/javascript"> /*var email = document.getElementById('user_email'); function add_email_list() { if (check_email()) { Ajax.call('user.php?act=email_list&job=add&email=' + email.value, '', rep_add_email_list, 'GET', 'TEXT'); } } function rep_add_email_list(text) { alert(text); } function cancel_email_list() { if (check_email()) { Ajax.call('user.php?act=email_list&job=del&email=' + email.value, '', rep_cancel_email_list, 'GET', 'TEXT'); } } function rep_cancel_email_list(text) { alert(text); } function check_email() { if (Utils.isEmail(email.value)) { return true; } else { alert('{$lang.email_invalid}'); return false; } }*/ /*邮件订阅*/ $(".bnt_blue").click(function() { var email = $("#user_email").val(); if (check_email(email)) { $.ajax({ type: "get", url: "user.php?act=email_list", data: 'job=add&email=' + email, success: function(data) { alert(data); } }); } }); /*取消订阅*/ $(".bnt_bonus").click(function() { var email = $("#user_email").val(); if (check_email(email)) { $.ajax({ type: "get", url: "user.php?act=email_list", data: 'job=del&email=' + email, success: function(data) { alert(data); } }); } }); function check_email(str) { res = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/; var re = new RegExp(res); if (str.match(re)) { return true; } else { alert("请输入正确的E-mail地址"); return false; } } </script>
经过上面的方法修改之后,邮件订阅时候,页面你是没有提示的,直接进邮箱收取确认邮件!