/ / रेल्स 4: एम्बेडेड रूबी / जावास्क्रिप्ट (js.erb) में अजाक्स त्रुटि घटना को बांध नहीं सकता है - jquery, रूबी-ऑन-रेल, ajax, erb

रेल्स 4: एम्बेडेड रूबी / जावास्क्रिप्ट (js.erb) में अजाक्स त्रुटि घटना को बांध नहीं सकता - jquery, रूबी-ऑन-रेल, ajax, erb

मैं उपयोगकर्ता को एक त्रुटि संदेश प्रदर्शित करने की कोशिश कर रहा हूं जिसमें कहा गया है कि कुछ गलत होने पर बुकिंग रद्द नहीं की जा सकती।

सफलता पर अजाक्स सामान्य रूप को स्वीकार करता हैदूरस्थ के साथ व्यवहार: सच्चा और एक आंशिक (संयोग से एक मौजूदा आंशिक के भीतर) का प्रतिपादन करता है, लेकिन मैं अपने js.erb फ़ाइल में अपने फॉर्म में "ajax: error" घटना को "बाइंड" नहीं कर सकता।

मैंने बहुत सारी और बहुत सारी चीजों की कोशिश की औरइसे काम करने के लिए प्रयास करने के लिए सिंटैक्स विविधताएँ। (मैं जावास्क्रिप्ट / jQuery के लिए काफी नया हूँ, इसलिए यह कुछ बुनियादी हो सकता है क्योंकि js.erb doesn "कंसोल में त्रुटियों को नहीं दिखाता है") यह मेरा नवीनतम प्रयास था:

cancel_success.js.erb:

$("#cancel-message").html("<%= j (render "cancel_success") %>");
$("#cancel-message").slideDown(350);
$("#search-show-container").hide()

$("#reservationId").closest("form").on("ajax:error", function(xhr, status, error) {
$("#cancel_error_text").html("Sorry, we can"t cancel your booking at the moment, please try calling the restaurant:");
});

मेरा फ़ॉर्म दृश्य:

<p id="cancel_error_text"></p>

<div id="search-show-container">

<%= form_tag(cancel_success_searches_path, remote: true) do %>
<%#= label_tag "Reservation ID" %>
<%= text_field_tag :reservationId %>
<%= submit_tag "Cancel Booking", name: nil %>
<% end %>
</div>

उत्तर:

जवाब के लिए 0 № 1

ठीक है, यह पूरा नहीं हो सकता है badass जवाब आप "के लिए देख रहे हैं। लेकिन मैं कोशिश करना चाहता था और आप शुरू कर दिया।

मुझे लगता है कि आपको स्विच करने की आवश्यकता है जहां आप अपना डालते हैं ajax:success तथा ajax:error कोड। अभी आप "इसे अपने में मिला है cancel_success.js.erb फ़ाइल, जो आपके नियंत्रक क्रिया के बाद चलती है। मुझे लगता है कि आपको उस कोड को निम्नलिखित फ़ाइल डालने की आवश्यकता है: app/assets/javascripts/cancel_success.js

$(document).ready(function() {
$("#reservationId").closest("form").on("ajax:error", function(xhr, status, error) {
$("#cancel_error_text").html("Sorry, we can"t cancel your booking at the moment, please try calling the restaurant:");
});
});

अधिक जानकारी यहाँ