2012-01-21 17 views
7

मेरे पास एक ऐसा फॉर्म है जिसे मैं data-remote=true विकल्प के साथ सबमिट करना चाहता हूं। लेकिन मैं अपनी बिल्ड एक्शन रिटर्न जेसन बनाना चाहता हूं, फिर उस पृष्ठ पर जावास्क्रिप्ट द्वारा संभाला गया है जो पहले से ही पेज पर मौजूद है। क्या मैं form_for टैग के साथ कॉलबैक इनलाइन सेट कर सकता हूं?डेटा-रिमोट सत्य कॉलबैक को परिभाषित करना

कुछ इस के समान:

=form_for @foo,:remote => true, :success => "my_js_stuff" do |f| 

उत्तर

9

मुझे यकीन नहीं है कि रेलवे के रूप में ओवरराइड किए बिना यह संभव होगा या नहीं। लेकिन आप jquery AJAX घटनाओं का उपयोग कर सकते हैं और उन्हें बांध सकते हैं। उदाहरण के लिए:

$('form#sign-up-form').ajaxError(function(event, request, settings) { 
//do some stuff on error 
}) 

$('form#sign-up-form').bind('ajax:success', function(evt, data, status, xhr){ 
//do some stuff on success 
}) 
5

आप foo नियंत्रक के लिए एक create.js.erb और/या update.js.erb परिभाषित करने के लिए चाहता हूँ। वह जावास्क्रिप्ट वापस करेगा जो आप निष्पादित करेंगे।

वहां से, आप जावास्क्रिप्ट निष्पादित कर सकते हैं जो पृष्ठ पर पहले से मौजूद है।

+0

अच्छी सोच। +1 यह सफलता के मामले में मदद करेगा। त्रुटि के मामले में मदद नहीं करेगा। – Hendrik

संबंधित मुद्दे