Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

React.js में फॉर्म्स के साथ काम करना

सिंपल HTML फॉर्म में, फॉर्म एलिमेंट्स मान को आंतरिक रूप से अपने पास रखते हैं और फॉर्म सबमिशन बटन पर सबमिट करते हैं।

उदाहरण

<!DOCTYPE html> <html> <head> <title>Form Example</title> </head> <body> <form>    <label>       User Name:         <input type="text" name="username" />    </label>    <input type="submit" value="Submit Form" /> </form> </body> </html>

उपरोक्त उदाहरण में, हमारे पास username नामक एक सिंपल इनपुट है और हम फॉर्म सबमिशन पर इसका मान प्राप्त कर सकते हैं। HTML फॉर्म का डिफ़ॉल्ट व्यवहार नए पेज पर नेविगेट करना है यानी पोस्ट फॉर्म सबमिशन पेज।

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

React में फॉर्म सबमिशन को संभालने की एक तकनीक है जिसे कंट्रोल्ड कंपोनेंट्स कहा जाता है।

HTML की तरह, इनपुट, टेक्स्टएरिया जैसे एलिमेंट्स अपनी स्थिति रखते हैं और उपयोगकर्ता क्रियाओं के आधार पर अपडेट होते हैं। React में म्यूटेबल फील्ड्स स्टेट ऑब्जेक्ट के साथ रखे जाते हैं।

React के कंट्रोल्ड कंपोनेंट दृष्टिकोण में username फील्ड को संभालना -

class UserForm extends React.Component {    constructor(props) {       super(props);       this.state = {username: ''};       this.handleChange = this.handleChange.bind(this);       this.handleSubmit = this.handleSubmit.bind(this);    }    handleChange(event) {       this.setState({username: event.target.value});    }    handleFormSubmit(event) {       console.log('username: ' + this.state.username);       event.preventDefault();    }    render() {       return (          <form onSubmit={this.handleFormSubmit}>             <label>                Name:                <input type="text" value={this.state.username} onChange={this.handleUsernameChange} />             </label>             <input type="submit" value="Submit" />          </form>       );    } }

यहां हमारे पास स्टेट फील्ड username को अपडेट करने के लिए onChange हैंडलर फंक्शन है।

फॉर्मसबमिट पर हम ब्राउज़र में कंसोल लॉग दिखा रहे हैं ताकि सबमिट किए गए यूजरनेम को प्रदर्शित किया जा सके।

अन्य कंट्रोल्ड प्रकार के कंपोनेंट्स टेक्स्टएरिया, सेलेक्ट टैग, रेडियो बटन आदि हैं।

कुछ अनकंट्रोल्ड कंपोनेंट्स भी हैं जैसे फाइल टाइप जो रीड-ओनली प्रकृति के हैं और केवल फॉर्म सबमिशन पर अपना मान प्राप्त करते हैं।

सिंगल JS फंक्शन के साथ मल्टीपल फॉर्म इनपुट्स को संभालना -

handleInputChange(event) {    const value = event.target.value;    const name = event.target.name;    this.setState({       [name]: value    }); }

नल मान वाले कंट्रोल्ड इनपुट को स्टेट इनिशियलाइज़ेशन का उपयोग करके फील्ड्स के लिए डिफ़ॉल्ट मान प्रदान करके टाला जाना चाहिए।

React में फॉर्म हैंडलिंग के लिए पूर्ण पैमाने के समाधान के लिए थर्ड-पार्टी लाइब्रेरी जैसे फॉर्मिक का उपयोग किया जा सकता है। यह वैलिडेशन, उपयोगकर्ता को फीडबैक और बहुत कुछ के लिए सरल है।

  1. Google Forms के साथ इवेंट रजिस्ट्रेशन फॉर्म कैसे बनाएं Google Forms के साथ इवेंट रजिस्ट्रेशन फॉर्म कैसे बनाएं

    Google Forms का अच्छा उपयोग करने के कई तरीके हैं। आप एक क्विज़ सेट कर सकते हैं, या यदि आप कोई इवेंट आयोजित कर रहे हैं और अपने उपस्थित लोगों को रजिस्टर करने का एक त्वरित, मुफ़्त तरीका चाहते हैं, तो Google Forms एक अनुकूलित रजिस्ट्रेशन फॉर्म बनाने का आसान तरीका प्रदान करता है। साथ चलें और सीखें कि Go

  1. Pry में अपवाद हैंडलिंग में महारत हासिल करें: Rails कंसोल के लिए उन्नत तकनीकें Pry में अपवाद हैंडलिंग में महारत हासिल करें: Rails कंसोल के लिए उन्नत तकनीकें

    यदि आप मेरी तरह हैं, तो आप Rails कंसोल का बहुत उपयोग करते हैं। और अब तक मुझे लगता है कि हर कोई सहमत है कि Pry, Rails कंसोल के लिए अब तक की सबसे अच्छी चीज है... ठीक है, कभी भी। Pry में अंतर्निहित कुछ वास्तव में कूल फीचर्स हैं जो अपवादों के साथ काम करना सादे पुराने IRB की तुलना में बहुत आसान बनाते हैं

  1. phpPress, goPress, rubyPress, और nodePress के साथ वेब फॉर्म्स को सुरक्षित रूप से प्रोसेस करें phpPress, goPress, rubyPress, और nodePress के साथ वेब फॉर्म्स को सुरक्षित रूप से प्रोसेस करें

    अब जब आपके पास एक फ्लैट फाइल सिस्टम का उपयोग करने वाली वेब साइट है, तो आप अपने यूजर्स से कुछ फीडबैक प्राप्त करना चाहेंगे। Disqus जोड़ना आसान है क्योंकि यह पेज में जोड़ा गया ऑल जावास्क्रिप्ट कोड है, लेकिन यह वह नहीं है जो आप चाहते हैं। आप चाहते हैं कि वे आपको सीधे ईमेल कर सकें ताकि आप केवल उन्हें जवा