2010-01-29 18 views
5

साथ openInfoWindowHtml मैं उपयोगकर्ताओं को अपनी गूगल मानचित्र पर नया बिंदु जोड़ने के लिए क्षमता जोड़ दिया है। मेरा कोड:गूगल मानचित्र: jQuery समस्या

GEvent.addListener(map, "click", function(overlay,point) { 
    if (point) { 
     var myHtml = '<div id="addpoint"><form id="formadd" name="formadd_point" enctype="multipart/form-data" method="post" action="pointadd.php"><table><tr><td>Place:</td><td>' + point + '</td></tr><tr><td>Name:</td><td><input name="name" type="text" size="32" maxlength="200" /></td></tr><tr><td>Photo (jpg,png:2Mb):</td><td><input type="file" name="image" size="20" accept="image/png,image/jpeg" /></td></tr><tr><td></td><td><input name="pcoord" type="hidden" value="'+point+'" /><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /><input name="subpoint" type="submit" value="Add" /></td></tr></table></form></div>'; 
     map.openInfoWindowHtml(point, myHtml); 
     $('#formadd').ajaxForm({ beforeSubmit: validate, target:'#addpoint' }); 
    } 
}); 

यह बिना लोड किए AJAX पोस्ट होना चाहिए। लेकिन यह काम नहीं कर रहा है! मुझे नहीं पता क्यों। शायद कुछ संघर्ष jquery.js और google api है? पृष्ठ को पुनः लोड किए बिना फॉर्म कैसे सबमिट करें?

उत्तर

1

शायद तुम प्रपत्र एचटीएमएल सफलतापूर्वक जोड़ दिया डोम से पहले बनाने के लिए eventListener जोड़ने के लिए प्रयास करें। इसे आज़माएं:

GEvent.addListener(map, "click", function(overlay,point) { 
    if (point) { 
     $('#formadd').live("load", function(){ 
      $(this).ajaxForm({ beforeSubmit: validate, target:'#addpoint' }); 
     }); 

     var myHtml = '<div id="addpoint"><form id="formadd" name="formadd_point" enctype="multipart/form-data" method="post" action="pointadd.php"><table><tr><td>Place:</td><td>' + point + '</td></tr><tr><td>Name:</td><td><input name="name" type="text" size="32" maxlength="200" /></td></tr><tr><td>Photo (jpg,png:2Mb):</td><td><input type="file" name="image" size="20" accept="image/png,image/jpeg" /></td></tr><tr><td></td><td><input name="pcoord" type="hidden" value="'+point+'" /><input type="hidden" name="MAX_FILE_SIZE" value="2000000" /><input name="subpoint" type="submit" value="Add" /></td></tr></table></form></div>'; 
     map.openInfoWindowHtml(point, myHtml); 

    } 
}); 
+0

उत्तर के लिए बहुत बहुत धन्यवाद। मैंने समझने की कोशिश में काफी समय बिताया कि समस्या क्या है। यह मेरा सिरदर्द था। आपका कोड काम कर रहा है भले ही मैं इसे map.openInfoWindowHtml के बाद लिखूं! एकमात्र समस्या यह है कि मुझे दो बार सबमिट बटन क्लिक करना होगा। पहले क्लिक करने के बाद कुछ भी नहीं होता है। और दूसरे क्लिक के बाद फॉर्म अजाक्स द्वारा भेजा गया है। इस समस्या को हल करने में मदद के लिए बहुत बहुत धन्यवाद! – SPnova

+0

मुझे यकीन नहीं है कि AJAXForm प्लगइन कैसे चल रहा है लेकिन मुझे कल्पना है कि समस्या क्या है। पहला कार्यक्रम हैडलर जो मैंने लिखा है, घटना सबमिट करने और झूठी वापसी के लिए एक हैंडलर जोड़ता है। और मुझे लगता है कि AJAXForm प्लगइन इवेंट हैंडलर को फ़ॉर्म सबमिट करने के लिए जोड़ता है। तो पहले क्लिक करें AJAXForm ईवेंट हैंडलर चलाने के अलावा कुछ भी नहीं कर रहा है। और AJAXForm के हैंडलर के दूसरे क्लिक ट्रिगर। यदि आप लाइव ईवेंट द्वारा AJAXForm ईवेंट हैंडलर जोड़ने का समाधान ढूंढ सकते हैं, तो आपकी समस्या समाप्त हो जाएगी। –

+0

मैंने ऊपर अपना कोड बदल दिया। शायद यह काम करेगा। –

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