2017-10-17 132 views
0

我有新闻订阅输入Opencart的网站,当我输入电子邮件,然后按订阅它说:“电子邮件是无效的!:即使你是。电子邮件输入未服用的电子邮件地址是有效的输入简讯订阅箱

,所以我不能使用它,因为它不采取电子邮件

我用这个主题并没有改变的订阅模块中任何东西, 您可以向下滚动到页脚,并检查它的行为在这里:http://demopavothemes.com/pav_woosa/demo2/

广东话找出问题所在。

继承人的模块代码:

<div class="<?php echo $prefix; ?> newsletter-v1" id="newsletter_<?php echo $position.$module;?>"> 
    <form id="formNewLestter" method="post" action="<?php echo $action; ?>" class="formNewLestter"> 
     <div class="panel panel-v1"> 
      <div class="panel-heading"> 
       <h4 class="panel-title"><?php echo $objlang->get("entry_newsletter");?></h4>   
      </div>    
      <div class="panel-body"> 
       <div class="input-group"> 
        <input type="text" placeholder="Email Here ..." class="form-control email" <?php if(!isset($customer_email)): ?> <?php endif; ?> size="18" name="email"> 
        <div class="input-group-btn pull-left"> 
         <button type="submit" name="submitNewsletter" class="btn btn-primary icon-mail radius-6x"><?php echo $objlang->get("button_subscribe");?></button> 
        </div> 
       </div> 
       <input type="hidden" value="1" name="action"> 
       <div class="valid space-top-10"></div> 
      </div> 
       <?php if (!empty($social)): ?> 
        <?php echo html_entity_decode($social);?> 
       <?php endif ?> 
     </div> 
    </form> 
</div> 

<script type="text/javascript"><!-- 

    $(document).ready(function() { 
     var id = 'newsletter_<?php echo $position.$module;?>'; 
     $('#'+id+' .box-heading').bind('click', function(){ 
      $('#'+id).toggleClass('active'); 
     }); 

     $('#formNewLestter').on('submit', function() { 
      var email = $('.inputNew').val(); 
      $(".success_inline, .warning_inline, .error").remove(); 
      if(!isValidEmailAddress(email)) {    
      $('.valid').html("<div class=\"error alert alert-danger\"><?php echo $objlang->get('valid_email'); ?><button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button></div></div>"); 
      $('.inputNew').focus(); 
      return false; 
     } 
     var url = "<?php echo $action; ?>"; 
     $.ajax({ 
      type: "post", 
      url: url, 
      data: $("#formNewLestter").serialize(), 
      dataType: 'json', 
      success: function(json) 
      { 
       $(".success_inline, .warning_inline, .error").remove(); 
       if (json['error']) { 
        $('.valid').html("<div class=\"warning_inline alert alert-danger\">"+json['error']+"<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button></div>"); 
       } 
       if (json['success']) { 
        $('.valid').html("<div class=\"success_inline alert alert-success\">"+json['success']+"<button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button></div>"); 
       } 
      } 
     }); 
     return false; 
    }); 
}); 

function isValidEmailAddress(emailAddress) { 
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i); 
    return pattern.test(emailAddress); 
} 
--></script> 
+0

@ chris85我不知道它在哪里定义。你能更具体吗? –

回答

2

这条线:

$('.inputNew') 

正在寻找一个名为inputNew类。您的HTML没有具有该名称的元素。你看起来像的元素有一个email的类。

<input type="text" placeholder="Email Here ..." class="form-control email" <?php if(!isset($customer_email)): ?> <?php endif; ?> size="18" name="email"> 
                    ^^^^^ 

你也可以使用form-control但这听起来并不唯一。一个id会更好,或者你可以使用name属性是这样的:

$('input[name="email"]') 

所以更改JS行:

var email = $('.email').val(); 

var email = $('input[name="email"]').val(); 

你可以阅读更多有关这些这里,https://api.jquery.com/category/selectors/

+0

谢谢!这解决了它 –

相关问题