我有一個AJAX表單,我正在尋找通過AJAX將數據提交給後臺控制器的函數。現在,我有下面的JS,並使用下面的控制器代碼來測試。但是,雖然函數返回200響應,我可以看到Firebug中的響應成功和錯誤功能沒有運行。有任何想法嗎?
$('contact_form').submit(function() {
var valuesToSubmit = $(this).serialize();
$.ajax({
url: $(this).attr('action'),
data: valuesToSubmit,
dataType: 'json',
type: 'POST',
success: function(data) {
alert('success');
},
error: function(data) {
alert('error');
}
});
return false; // prevents normal behavior
});
我試過超出警報的代碼,它仍然無法正常工作。另外,下面是控制器。幫助是極大的讚賞
def ajax_response
render :json => {
:name => 'test'
}
end
*編輯 - 添加HTML表單的情況下,這是與此有關
<form accept-charset="UTF-8" action="/contact_message" data-remote="true" id="contact_form" method="post">
<label for="name">Name</label><span class="color-red">*</span>
<div class="row margin-bottom-20">
<div class="col-md-7 col-md-offset-0">
<input class="form-control" id="name" name="name" type="text" />
</div>
</div>
<label for="email">Email</label><span class="color-red">*</span>
<div class="row margin-bottom-20">
<div class="col-md-7 col-md-offset-0">
<input class="form-control" id="email" name="email" type="text" />
</div>
</div>
<label for="message">Message</label><span class="color-red">*</span>
<div class="row margin-bottom-20">
<div class="col-md-11 col-md-offset-0">
<textarea class="form-control" id="message" name="message" rows="8"></textarea>
</div>
</div>
<p>
<button class="btn-u" name="button" type="submit">Send Message</button>
</p>
</form>
你可以添加一個完整的/總是處理程序,看看它是否被調用...成功或錯誤處理程序必須被調用... – 2014-10-07 03:47:09
嗯,總是/完成處理程序不工作 – Splashlin 2014-10-07 04:14:52
做一些基本的調試。在Ajax調用之前放置一個'console.log(「got here」),看看您是否在調試日誌中看到了單擊表單中的提交按鈕時的情況。這會告訴你你的'.submit()'處理程序是否被調用,並會告訴你下一步要看的地方。 – jfriend00 2014-10-07 04:31:29