电子邮件输入未将电子邮件地址作为时事通讯订阅框中的有效输入

Email input is not taking email address as valid input in newsletter subscribe box

我在 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>

这一行:

$('.inputNew')

正在寻找名为 inputNew 的 class。您的 HTML 没有具有该名称的元素。您的元素看起来有 email 的 class。

<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/