2011-10-17 23 views
5

के बिना फ़ॉर्म सबमिट करें मेरे पास एक ऐसा फॉर्म है जो सभी क्लाइंट साइड फॉर्म सत्यापन करने के लिए जावास्क्रिप्ट पर निर्भर करता है। प्रपत्र जावास्क्रिप्ट के माध्यम से प्रस्तुत किया जाता है, तो सभी क्षेत्रों सही ढंग से एक मानक का उपयोग कर के रूप में विरोध में भर रहे हैं "सबमिट करें" बटन: ग्राहक जावास्क्रिप्ट अक्षम हैजावास्क्रिप्ट

<button name="button" type=button onclick="validateReqFields('mForm', 'username, password, compPassword, firstName, lastName');">Register</button> 

document[formName].submit(); 

हैं, तो फ़ॉर्म सत्यापन के सभी से किया जाता है सर्वर साइड (अपने असल में फिर से प्रदर्शन किया लेकिन वास्तव में कोई फर्क नहीं पड़ता)। समस्या सबमिट करने के बजाए एक बटन के साथ बटन का उपयोग करने के साथ निहित है। यह जावास्क्रिप्ट के साथ सही काम करता है, लेकिन जावास्क्रिप्ट उपलब्ध नहीं होने पर मैं इसके आसपास कैसे हो सकता हूं? यदि मैं जावास्क्रिप्ट के साथ सबमिट बटन का उपयोग करता हूं तो यह प्रत्येक बटन प्रेस के साथ फ़ॉर्म सबमिट करता है और ठीक से काम नहीं करता है।

+1

आपको ' का उपयोग करना चाहिए ' – Pav

+1

कृपया मेरी सी देखें नीचे उल्लिखित मैं ये नहीं कर सकता। यह स्पष्ट रूप से सवाल में बताता है। – ryandlf

उत्तर

2

"बटन" बटन के बजाय सबमिट बटन का उपयोग करें, और उसके बाद फॉर्म 0 मान्य नहीं है, तो validateReqFields फ़ंक्शन रिटर्न गलत है।

फिर यदि आप चाहें तो वैध ReqFields से फ़ॉर्म सबमिट करें।

इस तरह

  • हैं प्रकार मान्य है, तो बटन क्लिक बुलबुला और फार्म
  • प्रस्तुत करेगा करेंगे, तो प्रपत्र अमान्य है, तो जावास्क्रिप्ट बटन पर क्लिक करें
  • तो रद्द हो जाएगा जावास्क्रिप्ट अक्षम है, तो इसे सर्वर पर फॉलबैक
+0

यह पूरी तरह से काम करता है। धन्यवाद! – ryandlf

+0

'इनपुट [टाइप = सबमिट] 'के साथ' बटन' तत्व को स्वैप करने का क्या फायदा है? – alex

+0

@alex फॉर्म एक बटन तत्व पर सबमिट नहीं करेगा। –

4

type विशेषता submit पर बदलें।

<button name="button" type="submit" ... /> 
+0

मैं ऐसा नहीं कर सकता क्योंकि यह मेरे जावास्क्रिप्ट को पृष्ठ को सबमिट करने से रोकने की अनुमति नहीं देता है और इस प्रकार मेरा जावास्क्रिप्ट बेकार है क्योंकि पृष्ठ वैसे भी सबमिट करता है और केवल सर्वर साइड सत्यापन का उपयोग करता है। – ryandlf

+2

@ryandl: आपको 'event.preventDefault()' का उपयोग करना चाहिए। – alex

+1

अनपेक्षित डाउनवॉट्स के लिए यय :) – alex

-2

जब जावास्क्रिप्ट अक्षम हो जाता है एक "सामान्य" प्रस्तुत बटन को परिभाषित करने के <noscript></noscript> टैग का प्रयोग करें।

-1

आप शायद <noscript> टैग का उपयोग कर सकते हैं और उपरोक्त कोड को सबमिट के रूप में बटन प्रकार के साथ encapsulate कर सकते हैं। यदि ग्राहक के पास जेएस है, तो नोस्क्रिप्ट के अंदर कोड को अनदेखा कर दिया जाएगा।

+0

इसलिए यदि जावास्क्रिप्ट अक्षम है और पृष्ठ नोस्क्रिप्ट टैग का उपयोग करता है, तो क्या मेरे पास पृष्ठ पर दो बटन नहीं होंगे? – ryandlf

+1

यदि आप "उपयोग 'noscript'" उत्तरों को कम करने जा रहे हैं, तो कम से कम समझाएं कि आपको क्यों लगता है कि यह उपयोगी नहीं है। – alex

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