如何解决Magento 2 通讯模块
我的问题是我们有一个自定义的时事通讯订阅表单,我们需要两个值:姓名和电子邮件。如果订阅成功,我希望收到一条确认消息,并希望向新用户发送一封电子邮件。
<div class="block newsletter">
<div class="test">
<form class="form subscribe" novalidate
action="<?PHP echo $block->escapeUrl($block->getFormActionUrl()) ?>"
method="post"
data-mage-init='{"validation": {"errorClass": "mage-error"}}'
id="newsletter-validate-detail">
<?PHP if ($block->getFieldConfig()): ?>
<div class="row align-items-center">
<div class="field firstname col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="control">
<input name="firstname" type="text" id="firstname" placeholder="<?PHP echo $block->escapeHtml(__('Firstname')) ?>" data-validate="{required:true}"/>
</div>
</div>
</div>
<div class="row align-items-center">
<div class="field lastname col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="control">
<input name="lastname" type="text" id="lastname" placeholder="<?PHP echo $block->escapeHtml(__('Lastname')) ?>" data-validate="{required:true}"/>
</div>
</div>
</div>
<div class="row align-items-center">
<div class="field newsletter col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="control">
<input name="email" type="email" id="newsletter" placeholder="<?PHP echo $block->escapeHtml(__('Email Address')) ?>" data-validate="{required:true,'validate-email':true}"/>
</div>
</div>
</div>
<?PHP else: ?>
<div class="row align-items-center">
<div class="field fullname col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="control">
<input name="fullname" type="text" id="fullname" placeholder="<?PHP echo $block->escapeHtml(__('Full Name')) ?>" data-validate="{required:true}"/>
</div>
</div>
</div>
<div class="row align-items-center">
<div class="field newsletter col-lg-12 col-md-12 col-sm-12 col-xs-12">
<div class="control">
<input name="email" type="email" id="newsletter" placeholder="<?PHP echo $block->escapeHtml(__('Email Address')) ?>" data-validate="{required:true,'validate-email':true}"/>
</div>
</div>
</div>
<?PHP endif; ?>
<div class="row align-items-center">
<div class="field privacy required col-lg-11 col-md-3 col-sm-3 col-xs-3">
<div class="control">
<input class="subscriber-checkBox col-lg-1 col-md-3 col-sm-3 col-xs-3" type="checkBox" id="privacy" name="privacy" data-validate="{required:true}" class="input-checkBox checkBox required" value="1">
<label for="privacy" class="label col-lg-10 col-md-3 col-sm-3 col-xs-3">
<a href="<?PHP echo $block->getPrivacyPolicyUrl() ?>">
<?PHP echo $block->getPrivacyPolicy() ?>
</a>
</label>
</div>
</div>
</div>
<div class="row align-items-center">
<div class="actions col-lg-3 col-md-3 col-sm-3 col-xs-3">
<button class="subscribe-button action subscribe btn btn-primary" title="<?PHP echo $block->escapeHtml(__('Subscribe')) ?>" type="submit">
<span><?PHP echo $block->escapeHtml(__('Subscribe')) ?></span>
</button>
</div>
</div>
</form>
</div>
这是jquery:
<script>
require(['jquery'],function($){
var form = $('#newsletter-validate-detail');
form.submit(function(e) {
if(form.validation('isValid')){
var email = $("#newsletter-validate-detail #newsletter").val();
var url = form.attr('action');
var loadingMessage = $('.loading-message');
e.preventDefault();
try{
loadingMessage.html('Submitting...').show();
$('.scg-msg > messages').html();
$.ajax({
url: url,dataType: 'json',type: 'POST',data: {email: email},success: function (data){
if(data.status != "ERROR"){
$("#newsletter-validate-detail #newsletter").val('');
$('#newsletter-validate-detail .scg-msg > .messages').html('<div class="message-success success message" ><div >' +
data.msg + '</div></div>');
}else{
$('#newsletter-validate-detail .scg-msg > .messages').html('<div class="message-error error message" >' +
'<div>'+data.msg +'</div></div>');
}
loadingMessage.hide();
},});
} catch (e){
loadingMessage.html(e.message).hide();
}
}
});
})
我应该如何以及在哪里放置这个 jquery 代码以使其工作?重要提示:我不希望我的页面在提交表单时刷新。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。