2011-03-25 11 views
11

वापस जब मैंने HTML सीखा, सीजीआई राजा था, और सर्वर के साथ बातचीत करने का उचित तरीका <input> टैग <form> टैग के अंदर रखना था। जब उपयोगकर्ता ने "सबमिट" बटन दबाया, तो HTTP पर एक HTTP GET या HTTP पोस्ट संदेश भेजा गया था और सर्वर पर CGI प्रोग्राम से लौटाए गए HTML कोड का उपयोग करके ब्राउज़र रीफ्रेश किया गया था।जावास्क्रिप्ट और AJAX के साथ, क्या मुझे अभी भी HTML <form> टैग की आवश्यकता है और क्या मुझे अभी भी "सबमिट" बटन का उपयोग कर सर्वर पर फ़ॉर्म सबमिट करने की आवश्यकता है?

अब मैंने फिर से वेब सामान करना शुरू कर दिया है और मैं जावास्क्रिप्ट और jQuery सीख रहा हूं। चूंकि jQuery click, keypress, और focusout जैसी घटनाओं को रोक सकता है, और $.ajax() और $.getJSON() के साथ डेटा पढ़ सकता है, क्या अभी भी <form> टैग होने की आवश्यकता है?

शायद "वास्तविक रूप" अभी भी आवश्यक हैं यदि मैं उन उपयोगकर्ताओं का समर्थन करना चाहता हूं जिनके पास जावास्क्रिप्ट बंद है?

+1

आपको जावास्क्रिप्ट मानकों के प्रतिस्थापन नहीं, प्रस्तुति परत में 'अतिरिक्त' के रूप में जावास्क्रिप्ट पर विचार करना चाहिए। हां, आप डोम व्यवहार के स्थान पर जावास्क्रिप्ट व्यवहार का उपयोग कर सकते हैं। लेकिन, जैसा कि 45 मील प्रति घंटे क्षेत्र में 90 मील प्रति घंटे ड्राइव करना संभव है, आपको वास्तव में नहीं करना चाहिए। अधिक जानकारी के लिए Unobtrusive जावास्क्रिप्ट पर विकी आलेख देखें: http://en.wikipedia.org/wiki/Unobtrusive_JavaScript –

+0

यदि मैं अब तक उत्तरों को सारांशित कर सकता हूं, तो ऐसा लगता है कि

टैग केवल तभी जरूरी है जब किसी तत्व में तत्वों को क्रमबद्ध करना । लेकिन गहराई से सोचते हुए, ऐसा लगता है कि जीमेल और Google मैप्स जैसे "सिंगल पेज" वेबसाइटों और Amazon.com जैसी वेबसाइटों के बीच एक अंतर है। मैं मल्टीपाज वेबसाइटों के लिए फॉर्मों का उपयोग करने का मूल्य देख सकता हूं, लेकिन "सिंगल-पेज" वेबसाइटें शुद्ध जावास्क्रिप्ट और किसी भी रूप से बेहतर नहीं हो सकती हैं, हालांकि संभवतः जब तक सबमिशन जावास्क्रिप्ट के साथ असीमित रूप से किया जाता है तब तक यह फ़ॉर्म को चोट नहीं पहुंचाएगा । –

उत्तर

4

फॉर्म अभी भी आपकी मदद कर सकते हैं, लेकिन संक्षिप्त उत्तर वास्तव में नहीं है।

यदि आपके पास एक निश्चित AJAX अनुरोध से संबंधित इनपुट का समूह है, तो उन्हें सत्यापन/क्रमिक उद्देश्यों के लिए अपने स्वयं के रूप में रखना आसान हो सकता है। उदाहरण के लिए:

$.ajax({ 
    url: 'ajax/test.html', 
    dataType: 'json', 
    method: 'POST', 
    content: $('form#login_form').serialize(), // <-- Serialize elements only in 
    success: function(data) {     //  the login_form container. 
     $('.result').html(data); 
    } 
}); 

अपनी आवश्यकताओं के आधार पर, आप कर सकते हैं जरूरत चारों ओर अपने रूपों अच्छा गिरावट के लिए जो जावास्क्रिप्ट बंद कर दिया है उपयोगकर्ताओं के लिए रखने के लिए। आपको अभी भी फॉर्म जमा करने की आवश्यकता होगी, इसलिए फॉर्म सेट अप और जगह पर एक अच्छा विचार है।

1

यदि आप AJAX का उपयोग कर रहे हैं, जब तक आपके पास कोई सीधी पोस्ट नहीं है या प्राप्त हो, तो एक फॉर्म टैग की आवश्यकता नहीं है। हालांकि, यह अभी भी अच्छा एचटीएमएल डिजाइन है।

1

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

<SELECT NAME="tree" onchange="doSomething(someVar);"> 

लेकिन फिर से, यह पृष्ठ आपको हेरफेर करना चाहते का तत्व है जिस पर निर्भर करता है।

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