2011-06-14 6 views
7

मुझे फ़ायरफ़ॉक्स, jQuery या दोनों के साथ परेशान होने का स्थान मिल रहा है। ओएस विंडोज 7 है, फ़ायरफ़ॉक्स संस्करण 4.0.1 है और jQuery 1.5 - 1.6 के बीच है।फॉर्म सबमिट नहीं होगा अगर .remove() का उपयोग किया जाता है?

असल में मेरे पास button तत्व के साथ एक फॉर्म है, जिसमें jQuery के माध्यम से एक क्लिक ईवेंट संलग्न होता है जो बटन के निकटतम पैरेंट div को हटा देता है। यह सब अद्भुत काम करता है।

अब समस्या तब आती है जब आप उपर्युक्त कार्रवाई करने के बाद फॉर्म जमा करने का प्रयास करते हैं। क्रोम, आईई, ओपेरा और सफारी फॉर्म ठीक जमा करें। दूसरी तरफ फ़ायरफ़ॉक्स फॉर्म जमा करने से इंकार कर देता है।

मैंने फ़ायरबग में $("form").submit(); को भी कोई फायदा नहीं हुआ है।

Here is a test on jsFiddle, बस - बटन पर क्लिक करें और फिर submit फ़ायरफ़ॉक्स में मेरा अर्थ देखने के लिए क्लिक करें।

इस मामले पर कोई भी मदद की बहुत सराहना की जाती है!

संपादित करें: मैं एक जावास्क्रिप्ट/jQuery form तत्व की बाहर एक बटन से जुड़ी घटना के माध्यम से प्रपत्र प्रस्तुत करने में सक्षम होने की जरूरत है।

उत्तर

8

मुझे लगता है कि मुझे इस समस्या का अंतिम समाधान मिला है। मैं दिन इस अजीब व्यवहार के साथ संघर्ष कर पिछले कुछ खर्च किया है और अंत में इस सूत्र और this one जो मुझे बहुत मदद की करवाते आ गया .. =))

बटन तत्व लगभग में एक 'प्रकार' विशेषता है जो is set by default to 'submit' है सभी ब्राउज़रों (आईई को छोड़कर)।

समस्या

तथ्य यह है कि हम नोड निकाल रहे हैं, जबकि प्रसंस्करण घटना प्रस्तुत और इसलिए फार्म की घटना प्रस्तुत तोड़ने से संबंधित प्रतीत हो रहा है ...

तो करने के लिए type = "बटन" जोड़ने बटन तत्व वास्तव में इस मुद्दे को हल करेगा।

Here is a workign jsFiddle example.

+2

मैं पुष्टि करता हूं कि यह काम करता है। मुझे बिल्कुल वही समस्या थी और मैं अपने बालों को फाड़ रहा था। धन्यवाद ! –

+2

मैं सिर्फ 2 साल बाद, फ़ायरफ़ॉक्स 24.0, नोट जारी रखना चाहता हूं, समस्या बनी रहती है। क्या यह बग या क्या है? – enrey

0

कोशिश का उपयोग कर इस बजाय:

<input type="submit" value="submit" /> 

अगर आप इसे टैग से पहले डाल दिया तो वह अपने आप प्रपत्र प्रस्तुत करेगा।

<!DOCTYPE html> 
<head> 
    <title>Firefox/jQuery Submit Bug?</title> 
</head> 
<body> 
    <form method="post" action="index.php" id="fform"> 
     <div> 
      <input type="text" name="foo" value="bar" /> 
      <button name="test">-</button> 
     </div> 
    <input type="submit" value="submit" /> 
    </form> 
</body> 

+0

यह वास्तव में समस्या को ठीक नहीं करता है, फॉर्म सबमिट नहीं करता है। –

+0

क्षमा करें मैंने कभी अपने प्रश्न में यह स्पष्ट नहीं किया है, लेकिन मुझे जावास्क्रिप्ट/jQuery के माध्यम से फॉर्म सबमिट करने में सक्षम होना चाहिए और सबमिट बटन नहीं। वैसे भी धन्यवाद। –

+0

@ डेवगोथिक: सबमिट प्रकार इनपुट का उपयोग करके आप जेएस के माध्यम से फ़ॉर्म जमा करने से नहीं रोकते हैं। यदि '$ (फॉर्म) .submit() 'कॉल करना है तो जमा इनपुट पर क्लिक करते समय डिफ़ॉल्ट सबमिट कार्रवाई के रूप में eaxct समान है। यदि आपको वास्तव में सबमिट करने पर क्या होता है, तो ओवरराइड करने की आवश्यकता है, तो बस अपने सबमिट हैंडलर में '$ (' form ') की डिफ़ॉल्ट कार्यक्षमता को अक्षम करें। सबमिट करें (फ़ंक्शन (evt) {evt.preventDefault();/* आपका ओवरराइड यहां सबमिट कोड * /}); '। – prodigitalson

5

मुझे पता नहीं है क्यों यह मामला है, लेकिन अगर आप की जगह:

साथ

<button name="test">-</button>

:

<input type="button" value="-" name="test" />

और यू $("button[name=test]") के बजाय $("input[name=test]") तो यह काम प्रतीत होता है।

आप इसे this fiddle में देख सकते हैं।

+0

क्या कोई भी प्रकाश डाल सकता है ऐसा क्यों होता है? –

+0

इस कामकाज को खोजने के लिए धन्यवाद! मैं किसी के विचारों को भी सुनना चाहूंगा कि क्यों फ़ायरफ़ॉक्स इस तरह से व्यवहार कर रहा है? –

+0

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

0

"paic_citron" की answere सही है लेकिन, कारण आप "पोस्ट" कर अजाक्स के माध्यम से आप इस बटन की जगह ले सकता:

<button name="test">-</button> 
hyberlink साथ

और कुछ सीएसएस:

<a href="#" class="bnt btn-warning" name="test"> 
    <i class="icon-remove icon-white"></i> 
</a> 

Here the jsFiddle that works

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

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