我已經使用表達式引擎的插件自由形式創建了一個基本的提交表單。從CMS方面,我的數據正在提交到EE CMS。但是,在我提交了我的詳細信息後,而不是收到成功消息後,我在我的表單object object
上收到以下消息。 <div id="form-messages" class="success">[object Object]</div>
Jquery AJAX提交表單錯誤
我假設這與我的jQuery有點關係當函數正在工作時,我通過PHP驗證提交。
下面是我的代碼片段。
var form = $('#ajax-contact');
var formMessages = $('#form-messages');
$(form).submit(function(e) {
e.preventDefault();
var formData = $(form).serialize();
// Submit the form using AJAX.
$.ajax({
type: 'POST',
url: $(form).attr('action'),
data: formData
})
.done(function(response) {
// formMessages div has the 'success' class.
$(formMessages).removeClass('error');
$(formMessages).addClass('success');
// Set the message text.
$(formMessages).text(response);
// Clear the form.
$('#name').val('');
$('#email').val('');
})
.fail(function(data) {
// Make sure that the formMessages div has the 'error' class.
$(formMessages).removeClass('success');
$(formMessages).addClass('error');
// Set the message text.
if (data.responseText !== '') {
$(formMessages).text(data.responseText);
} else {
$(formMessages).text('Oops! An error occured and your message could not be sent.');
}
});
})
HTML
<div id="form-messages" class="success"></div>
exp:freeform:form
form_id="1"
admin_notify="[email protected]"
form:class="main-contact submit-fade ajax-form"
form:id="ajax-contact"
}
<ul class="small-block-grid-2 medium-block-grid-2 hide-form">
<li>
<label for="name">Name</label>
{freeform:field:first_name
attr:class="form-control"
attr:placeholder="First Name"
attr:class="required"
}
</li>
<li>
<label for="email">Email</label>
{freeform:field:email
attr:class="form-control"
attr:placeholder="Email"
attr:class="required"
}
</li>
</ul>
<input type="submit" class="btn btn-success">
{/exp:freeform:form}
控制器是否返回JSON?它看起來像jQuery解析JSON,所以'response'是一個對象,而不是一個字符串。 – Barmar
'console.log(response)'顯示什麼? – Barmar
Object {success:true,entry_id:5,form_id:「1」,return:「http://mysite/index.php/sandbox/freeform」,return_url:「http://mysiteindex.php/sandbox/freeform」 } – NewBoy