मेरे पास एक रेल डिवाइज़ फ़ॉर्म है जिसमें जावास्क्रिप्ट सत्यापन है। जब उपयोगकर्ता सबमिट करता है, सत्यापन कार्य करता है और उपयोगकर्ता को उस फॉर्म पर फिर से ध्यान दिया जाता है जहां उन्हें होना चाहिए।रेल-डेटा-अक्षम-पुनः सक्षम करने वाला बटन
हालांकि, रेल डेटा-अक्षम-का उपयोग करता है ताकि बटन को क्लिक करने के बाद बटन को अक्षम किया जा सके, इसलिए प्रमाणीकरण के बाद उपयोगकर्ता अब सबमिट नहीं कर सकता है। मैं बटन को अक्षम करने के दौरान कुछ प्रकार के श्रोता सेट अप करने की कोशिश कर रहा हूं, डबल क्लिक को रोकने के लिए थोड़ी देर प्रतीक्षा करें, फिर बटन को फिर से सक्षम करें।
मैं कोड के कई पुनरावृत्तियों की कोशिश की है, नवीनतम मैंने कोशिश की थी:
$(document.on("ajax:success", "new_supplier", function() {
var button;
button = $(this).find('.btn-sign-up');
setTimeout((function() { return button.disabled=false; }),1);
});
लेकिन कोई सफलता मिली है, पहले मैं सिर्फ बटन को एक श्रोता जोड़ने की कोशिश की:
var button = document.getElementById('btn-sign-up');
button.addEventListener("click", enableButton);
function enableButton() {
if (button.disabled)
{
window.setTimeout(enable(), 2000);
}
}
function enable() {
button.disabled=false;
}
लेकिन इस असफल रहा क्योंकि यह फ़ंक्शन (रेल ईथर में छुपा) से पहले भाग गया था जिसने बटन को अक्षम कर दिया था, इसलिए काम नहीं किया।
<%= f.submit "Create my account", class: 'btn-sign-up', id: 'btn-sign-up' %>
किसी को भी मेरी मदद कर सकते यहाँ से बाहर:
मेरी सबमिट बटन एक सरल है? मुझे लगता है कि अगर मैं इस पेज के लिए jQuery_ujs को अक्षम कर सकता हूं जो काम करेगा, लेकिन यह सुनिश्चित नहीं है कि मैं ऐसा कर सकता हूं।
यह पटरियों 5 हैं कि यह अतिरिक्त था? बस एक घंटे डिबगिंग बिताया, "कौन मेरा बदनाम सबमिट बटन बदल रहा है!" यूजेएस का कितना कठोर ऐसा लगता है कि यह काम करता है। – Mike
डिफ़ॉल्ट व्यवहार को लागू करने के साधन के रूप में जेएस के साथ लोड के बाद पृष्ठ को मैनिपुलेट करना एक बुरा अभ्यास है। – Archonic