问题描述
嗨,我正在编辑一个网站,那里有表单提交,我在那里使用 formspree 提交表单(姓名、电子邮件、评论)。然后点击发送按钮。
一切正常,希望成功的警报看起来很奇怪……见下图:
我正在尝试编辑它,但不知道如何进行。我希望它显示“谢谢,您提交成功!”。
我找到了这部分的 javascript 代码:
// Form Validation !Plugin @v1.0
NioApp.Plugins.submitform = function () {
var $form = $('.nk-form-submit');
if( !$().validate && !$().ajaxSubmit ) {
console.log('jQuery Form and Form Validate not Defined.');
return true;
}
if ($form.exists()) {
$form.each(function(){
var $self = $(this),_result = $self.find('.form-results');
$self.validate({
ignore: [],invalidHandler: function () { _result.slideUp(400); },submitHandler: function(form) {
_result.slideUp(400);
$(form).ajaxSubmit({
target: _result,dataType: 'json',success: function(data) {
var type = (data.result==='error') ? 'alert-danger' : 'alert-success';
_result.removeClass( 'alert-danger alert-success' ).addClass( 'alert ' + type ).html(data.message).slideDown(400);
if (data.result !== 'error') { $(form).clearForm().find('input').removeClass('input-focused'); }
}
});
}
});
$self.find('.select').on('change',function() { $(this).valid(); });
});
}
};
NioApp.components.docReady.push(NioApp.Plugins.submitform);
和css中的代码:
.alert-success { color: #29cf77; background: #cef5e1; }
.alert-success .close { background: #64e09e; }
.alert-success-alt { background: #39d884; }
.alert-success-alt .close { background: #25b96b; }
谁能给我一些提示如何改变它?谢谢。
解决方法
我将把问题中的一部分 javascript 集中起来
$(form).ajaxSubmit({
target: _result,dataType: 'json',success: function(data) {
var type = (data.result==='error') ? 'alert-danger' : 'alert-success';
_result.removeClass( 'alert-danger alert-success' ).addClass( 'alert ' + type ).html(data.message).slideDown(400);
if (data.result !== 'error') { $(form).clearForm().find('input').removeClass('input-focused'); }
}
});
这部分是ajax
部分,负责提交验证后的数据,提交成功后的返回存储在对象data
中,该对象有两个属性。 data.result
给出提交状态,data.message
携带要显示在 div
中的消息。这个 div
有一个类名 .form-results
,它由对象 _result
( _result = $self.find('.form-results')
)
下一行根据data.status
改变div的class,显示提交后发送的消息
_result.removeClass( 'alert-danger alert-success' ).addClass( 'alert ' + type ).html(data.message).slideDown(400);
因此,要么提交后发送消息,要么针对成功或失败的情况做一个简短的修改。
如果我们要进行这个修改,那么就在上面提到的行之前我们添加:
if (data.result !== 'error') {data.message="Thanks,your submission is successful!";}
else { data.message = "Submition failed";}
这样代码就变成了
$(form).ajaxSubmit({
target: _result,success: function(data) {
var type = (data.result==='error') ? 'alert-danger' : 'alert-success';
/////////////////////////////////////////////
if (data.result !== 'error') {data.message="Thanks,your submission is successful!";}
else { data.message = "Submition failed";}
//////////////////////////////////////////////
_result.removeClass( 'alert-danger alert-success' ).addClass( 'alert ' + type ).html(data.message).slideDown(400);
if (data.result !== 'error') { $(form).clearForm().find('input').removeClass('input-focused'); }
}
});
现在很清楚,获得解决方案并不重要,但理解代码也很重要。