0
我使用UJS填充模式內的窗體,我使用JQuery Validate執行驗證並通過ajax將表單提交回服務器。Rails 4 UJS不發射失敗/完成/總是回調
一切都很好,窗體得到渲染,字段驗證,表單被正確提交到服務器。問題是掛起$.rails.handleRemote
函數的回調不會觸發。
這裏是CoffeeScript中,我使用的驗證和提交(此功能是從與new.js.erb和edit.js.erb叫:
@initializeForm: ->
$(".note-form").validate ->
rules:
"note[title]" : "required"
submitHandler: (form) ->
$.rails.handleRemote($(form))
.done ->
alert "You will never see me!"
new.js.erb
$('#modal-window').html('<%= escape_javascript(render :partial => 'form', :object => @note) %>');
Note.initializeForm();
create.js.erb
var note = new Note();
note.createOrUpdate("note<%= @note.id %>", "<%= @note.title %>", "<%= escape_javascript(render @note) %>");
我能夠通過在應用廣泛的腳本添加此周圍破解:
$(document).on 'ajax:success', '.note-form', ->
alert "Here I am!"
我已經驗證了我只有裝的JQuery的一個副本。
任何想法都會很棒!
編輯 這裏是發送到瀏覽器編譯後的JS:
Note.initializeForm = function() {
return $(".note-form").validate(function() {
return {
rules: {
"note[title]": "required"
},
submitHandler: function(form) {
return $.rails.handleRemote($(form)).always(function() {
return alert("You will never see me!");
});
}
};
});
};
服務器端代碼進行故障排除客戶端(JavaScript)代碼問題實際上是無用的。向我們展示_rendered_ JavaScript和HTML代碼......換句話說,就像瀏覽器所看到的那樣。 – Sparky