दिलचस्प पोस्ट
मल्टीप्लॉट – बड़े कैनवास पर 3 ग्राफ़ को ढेर करना सामान्य रूप से जावास्क्रिप्ट में कोड संगठन के आसपास सर्वोत्तम प्रथाओं को स्वीकार किया जाता है मध्यस्थ बनाम ऑब्जर्वर ऑब्जेक्ट ओरिएंटेड डिज़ाइन पैटर्न SpansSizeLookup का उपयोग कर GridLayoutManager में आइटम्स के लिए सेट करें ऑडियो रिकॉर्ड करें और IOS में स्थायी रूप से सहेजें जावा में MySQL डेटैटम्स और टाइमस्टैंक्स हैंडलिंग सी # में अंत में ब्लॉक एक कोशिश, निष्पादित, अंत में अगर एक unhandled अपवाद फेंक दिया जाता है में निष्पादित किया जाएगा? एंड्रॉइड ऐप में ओपनसीवी प्रबंधक कैसे एकीकृत करें Codeigniter में get_instance (): यह एक चर में क्यों असाइन करें? MPAndroidChart रेंडरर्स कैसे काम करते हैं और मैं एक कस्टम रेंडरर कैसे लिखूं? GC का उपयोग करने के बारे में क्या गलत है। संकलक ()? NSFileManager.defaultManager ()। FileExistsAtPath सही के बजाय झूठी देता है ACTION_IMAGE_CAPTURE के साथ ली गई छवियां हमेशा ExifInterface के लिए 1 देता है। TAG_ORIENTATION कुछ नए उपकरणों पर जावा – फ़ाइल पढ़ें और एकाधिक फ़ाइलों में विभाजित करें बुनना: आउटपुट में टेक्स्ट रैपिंग को कैसे रोकें?

jquery serializeArray में जमा बटन सबमिट किया गया था जिसमें शामिल नहीं था

मेरे पास एक ऐसा फ़ॉर्म है जिसमें दो बटन हैं एक रिकॉर्ड को बचाने के लिए और अन्य को बचाने की प्रक्रिया को रद्द करने के लिए। मैं rails.js (एक सामान्य AJAX / jQuery plug-in का उपयोग उन लोगों के लिए जो मुझे नहीं पता है) जावास्क्रिप्ट फ़ाइल है जो अविश्वसनीय जावास्क्रिप्ट / एजेक्स कॉल के लिए jQuery के साथ काम करता है। जब मैं एजेएक्स पर फ़ॉर्म डेटा भेजता हूं, तो मैं शेष डेटा के साथ प्रस्तुत किए जाने वाले बटन का नाम और मूल्य चाहता हूं ताकि मैं किस बटन पर क्लिक किया गया था, उसके आधार पर निर्णय ले सकूं।

rails.js फ़ाइल में विधि सर्वर से फॉर्म डेटा भेजने के लिए। .serializeArray() का उपयोग .serializeArray() है। समस्या यह है कि इसमें मेरे द्वारा क्लिक किए गए बटन का नाम / मूल्य जोड़ी शामिल नहीं है। jQuery की वेबसाइट बताती है कि वे ऐसा उद्देश्य (ऐसा मेरी राय है कि उन्हें करना चाहिए):

" .serializeArray() पद्धति, सफल नियंत्रण के लिए मानक W3C नियमों का उपयोग करता है, यह निर्धारित करने के लिए कि कौन सा तत्व इसमें शामिल होना चाहिए, विशेष रूप से तत्व अक्षम नहीं किया जा सकता है और इसमें एक नाम विशेषता होना चाहिए। कोई सबमिट बटन मान क्रमबद्ध नहीं है क्योंकि फॉर्म का उपयोग करके फ़ॉर्म सबमिट नहीं किया गया था। एक बटन।"

वे यह कैसे मान सकते हैं कि कोई फ़ॉर्म किसी बटन का उपयोग नहीं किया गया था? यह कोई मतलब नहीं है और एक गलत धारणा है जो मुझे विश्वास है।

डब्ल्यू .3 सी नियम के तहत एक बटन को नियंत्रित करने के लिए सक्रिय रूप से एक सफल नियंत्रण माना जाता है।

चूंकि jQuery के डेवलपर्स ने इस उद्देश्य पर ऐसा करने का फैसला किया है, क्या मैं मान सकता हूँ कि एक और तरीका है जो एक सक्रियण बटन सक्रिय नहीं करता है ?

संपादित करें: मेरे फार्म का कैसा दिख सकता है इसका त्वरित उदाहरण …

 <!DOCTYPE html5> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $('#form').submit(function(e) { // put your breakpoint here to look at e var x = 0; }); }); </script> </head> <body> <form id="form"> <input name="name" type="text"><br/> <input name="commit" type="submit" value="Save"/> <input name="commit" type="submit" value="Cancel"/> </form> </body> 

Solutions Collecting From Web of "jquery serializeArray में जमा बटन सबमिट किया गया था जिसमें शामिल नहीं था"

ऐसा नहीं है, यह व्यवहार , <form> की एक submit घटना पर आधारित होता है, एक बटन से नहीं , जैसे प्रवेश करना या कॉल करना। जावा में प्रवेश करें। आप यहाँ 2 अवधारणाओं को मिला रहे हैं, एक .serialize() या। .serializeArray() एक बटन क्लिक के साथ कुछ भी नहीं हो सकता है या नहीं – यह पूरी तरह एक अलग घटना है, वे कनेक्ट नहीं हैं इन तरीकों से उच्च स्तर पर: आप किसी भी कारण किसी भी समय एक फार्म (या इसका उपसमुच्चय) क्रमबद्ध कर सकते हैं।

यदि आप उदाहरण के लिए एक बटन से सबमिट कर रहे हैं, तो उस बटन से सबमिट किए जाने वाले एक सामान्य फ़ॉर्म जैसे सबमिट नाम / मान युग्म जोड़ सकते हैं:

 $("#mySubmit").click(function() { var formData = $(this).closest('form').serializeArray(); formData.push({ name: this.name, value: this.value }); //now use formData, it includes the submit button }); 

मैं निम्नलिखित स्निपेट का उपयोग करता हूं, मूल रूप से एक ही नाम के साथ एक छिपी हुई तत्व जोड़ता है

  var form = $("form"); $(":submit",form).click(function(){ if($(this).attr('name')) { $(form).append( $("<input type='hidden'>").attr( { name: $(this).attr('name'), value: $(this).attr('value') }) ); } }); $(form).submit(function(){ console.log($(this).serializeArray()); }); 

यह समाधान 'सार्वभौमिक' है क्योंकि इसमें आपके सभी इनपुट को संभाल करेगा, सबमिशन पर प्रपत्र चर के रूप में प्रत्येक को पारित कर देगा।

 $(document).ready(function(){ $('input:submit').each(function(){ $(this).click(function(){ var formData = $(this).closest('form').serializeArray(); formData.push({ name: $(this).attr('name'), value: $(this).val() }); }); }); }); 
  var form = button.closest('form'); var serialize = form.serialize(); if (button.attr('name') !== undefined) { serialize += '&'+button.attr('name')+'='; }