2010-03-30 17 views
12

मैं पूरी तरह से उलझन में हूं ... मैं कसम खाता हूं कि यह कल काम कर रहा था ... मैं आज सुबह उठ गया और मेरे सभी रूप मेरे प्रोजेक्ट में काम करने के लिए रुक गए।सबमिट करने पर सबमिट करें झूठी वापसी

सभी रूपों में एक फ़ंक्शन पर "ऑनसमेट" होता है जो झूठी वापसी करता है क्योंकि यह अजाक्स कॉल है, इसलिए फ़ॉर्म कभी नहीं भेजा जाता है।

परीक्षण का एक बहुत बाद, मैं कोड के इस टुकड़े के लिए सवाल सरल बनाया:

<html> 
<head> 
<script type="text/javascript"> 
function sub() 
{ 
    alert ("MIC!"); 
    return false; 
} 
</script> 
</head> 
<body> 

<form method = "post" id = "form1" onsubmit = "return sub()"> 
input: <input type="text" name="input1" > 
    <a href="#" onClick="document.getElementById('form1').submit();">button</a> 
</form> 

</body> 
</html> 

मैं कसम खाता है कि यह पूरी तरह से काम करता है, लेकिन आज है और न ही काम कर रहे: डी

अगर मैं प्रेस क्यों बटन भेजा गया है बटन?

मैं जानता हूँ कि यह एक कुल नौसिखिया सवाल है, लेकिन मैं अटक

धन्यवाद हूँ!

उत्तर

2

आपको लगता है कि

<a href="#" onClick="return document.getElementById('form1').onsubmit();">button</a> 
5

ऑनसबमिट घटना केवल सामान्य फ़ॉर्म सबमिशन आग की तरह "बटन" कोड बदलने की कोशिश करें। जब जावास्क्रिप्ट submit() विधि कहा जाता है तो यह आग नहीं होता है।

सबसे अच्छा समाधान यहां एक सामान्य सबमिट बटन का उपयोग करना है।

आप पृष्ठ के शीर्ष पर एक लिंक (जो unobtrusive नहीं है, progressive, या सुंदर) का उपयोग कर के साथ जारी रखना चाहते हैं तो आप sub() समारोह स्पष्ट रूप से कहते हैं और यदि आप ऐसा करना चाहिए निर्णय लेने से पहले अपनी वापसी मूल्य का परीक्षण करने की जरूरत है submit() पर कॉल करें या नहीं।

12

ब्राउज़र अगर आप सबमिट() प्रोग्रामेटिक रूप से कॉल करते हैं तो फॉर्म पर ऑनब्यूमिट ईवेंट पर कॉल न करें।

+0

एंडी ... मैं आपको कसम खाता हूं कि कल काम कर रहा था :) मेरे पास इस तरह की संरचनाओं के साथ एक पूरी परियोजना है, और फॉर्म कभी सबमिट नहीं किया गया था ... यह अन्य बात होनी चाहिए ...: पी – StuckOnSubmit

+0

सबमिट घटना इस कोड के साथ आग नहीं होगी। तीन अलग जवाब सभी कहते हैं कि! या तो आप गलत हैं, या आपका टेस्ट केस पर्याप्त रूप से आपके वास्तविक कोड का प्रतिनिधित्व नहीं करता है। – Quentin

+0

क्या आप वाकई वास्तविक सबमिट बटन नहीं रखते हैं? उसके बाद यह काम करेगा। शायद आपने कल एंकरों के लिए अपने सबमिट बटन को एन्हांसमेंट के रूप में बदल दिया है? क्या आपके पास स्रोत नियंत्रण प्रणाली है? क्या अन्य डेवलपर इस परियोजना पर भी काम कर रहे हैं जो इसे बदल सकता था? –

5

ऐसा लगता है कि 'सबमिट()' फ़ंक्शन फ़ायरफ़ॉक्स और आईई 8 में 'फॉर्म' टैग 'ऑनसबमिट' ईवेंट को छोड़ देता है। आप एक सबमिट बटन का उपयोग करते हैं, तो यह अपेक्षा के अनुरूप काम करता है:

<html> 
<head> 
<script type="text/javascript"> 
function sub() 
{ 
    alert ("MIC!"); 
    return false; 
} 
</script> 
</head> 
<body> 

<form method = "post" action="http://google.com" id = "form1" onsubmit = "return sub();"> 
input: <input type="text" name="input1" > 
    <input type="submit"> 
</form> 

</body> 
</html> 
3

आप इस्तेमाल कर सकते हैं jQuery preventDefault विधि।

$(function() { 
     $('#repForm').bind('submit', function (e) { 
      var isValid = true; 
      if (btnname == 'test') { 
       isValid = ValidateEmailID(); 
      } 
      else { 
       isValid = ValidateSomething(); 
      } 

      if (!isValid) { 
       e.preventDefault(); 
      } 
     }); 
    }); 
0

मुझे संदेह है कि वह एक फॉर्म बटन का उपयोग करना चाहता था जो जमा प्रकार का नहीं था। इस मामले में, आप भी उपयोग कर सकते हैं:

<input type="button" value="Submit" onclick="if(sub()) document.getElementById('form1').submit()"> 

एक और टिप मैं दे सभी रूपों में name विशेषता का उपयोग करने के लिए है, के रूप में यह बहुत उपयोग करने के लिए आसान है: document.form1.submit()document.getElementById('form1').submit() के बजाय। यह क्रॉसब्रोसर है और उन सभी में काम करता है। getElementById महान है लेकिन फ़ॉर्म के लिए आवश्यक नहीं है।

-3

बुनियादी वाक्यविन्यास और संरचनाओं की जांच करें ... फिर अपने पृष्ठ या इनपुट बॉक्स पर किसी भी रूप के साथ अपने अन्य रूपों की जांच करें ... मुझे एक ही समस्या थी (या इसी तरह: इनपुट बॉक्स में एंटर दबाकर फॉर्म भेजने के लिए) ...

मैंने प्रतिलिपि नमूने चिपकाया और पृष्ठ को लोड किया। उन्होंने काम किया और मेरा नहीं किया, इसलिए मैंने स्वरूपण tweaked और फिर भी इसे फिर से लिखना।

+0

काम करने के लिए आपने क्या परिवर्तन किए? स्टैक ओवरफ़्लो पर सवालों के जवाब देने के तरीके के बारे में समझने के लिए [http://stackoverflow.com/questions/how-to-answer) पर एक नज़र डालें [http://stackoverflow.com/questions/how-to-answer)। – Jesse

-1

मैं एक ही मुद्दा (मैं IE 8 का उपयोग कर रहा था) मिल गया है,

निम्नलिखित कोड काम कर रहा है नहीं:

<form method="post" id="form1" onsubmit="sub"> 
<form method="post" id="form1" onsubmit="sub()"> 
<form method="post" id="form1" onsubmit="return sub()"> 

और निम्नलिखित कोड काम कर रहा है,

<form method="post" id="form1" onsubmit="return(sub())"> 

मैं बस नमूना here

का पालन करें और कृपया ध्यान दें कि:

सबमिट विधि ऑनसममिट ईवेंट हैंडलर का आह्वान नहीं करती है।

INPUT TYPE = submit, INPUT TYPE = image, या BUTTON TYPE = सबमिट ऑब्जेक्ट का उपयोग करके एक फॉर्म सबमिट करें।

0

अपने फॉर्म टैग में अपने सभी सबमिट सबमिट स्टेटमेंट में "वापसी" जोड़ें ... उदा। onsubmit = "वापसी वैध_फंक्शन()" इस तरह वापसी वापस झूठी है या आपके वैध फ़ंक्शन में सत्य वापस लौटा है, जिसके परिणामस्वरूप आपके ऑनसमेट में रिटर्न कमांड के परिणामस्वरूप पोस्ट किया गया है।

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

  • कोई संबंधित समस्या नहीं^_^