最近一直做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>
经过上面的方法修改之后,邮件订阅时候,页面你是没有提示的,直接进邮箱收取确认邮件!
暂无评论