# బ్యాంకింగ్ యాప్ నిర్మించండి భాగం 2: లాగిన్ మరియు రిజిస్ట్రేషన్ ఫారమ్ నిర్మించండి
```mermaid
journey
title మీ ఫారమ్ అభివృద్ధి ప్రయాణం
section HTML మౌలికాధారం
ఫారమ్ అంశాలను అర్థం చేసుకోండి: 3: Student
ఇన్పుట్ రకాలను నేర్చుకోండి: 4: Student
ప్రాప్యత నైపుణ్యం: 4: Student
section జావాస్క్రిప్ట్ సమగ్రం
ఫారమ్ సమర్పణను నిర్వహించండి: 4: Student
AJAX కమ్యూనికేషన్ అమలు చేయండి: 5: Student
సర్వర్ ప్రతిస్పందనలను ప్రాసెస్ చేయండి: 5: Student
section ధ్రువీకరణ వ్యవస్థలు
బహుళ-స్థాయి ధ్రువీకరణ సృష్టించండి: 5: Student
వినియోగదారు అనుభవం పెంచండి: 5: Student
డేటా సమగ్రతను నిర్ధారించండి: 5: Student
```
## పాఠం ముందరి క్విజ్
[పాఠం ముందరి క్విజ్](https://ff-quizzes.netlify.app/web/quiz/43)
మీరు ఎప్పుడైనా ఆన్లైన్ ఫారమ్లో ఇన్పుట్ చేసి, మీ ఇమెయిల్ ఫార్మాట్ తిరస్కరించబడిందని చూసారా? లేదా సబ్మిట్ చేసేటప్పుడు మీ సమాచారమంతా పోయిందా? మనందరం ఇటువంటి నిరుత్సాహకర అనుభవాలను ఎదుర్కొన్నాం.
ఫారమ్లు మీ వినియోగదారులు మరియు మీ అప్లికేషన్ పనితీరుకు మధ్య వంతెన. జాగ్రత్తగా విమాన నియంత్రకులు విమానాలను సురక్షితంగా గమ్యస్థానాలకు చేర్చేందుకు అనుసరించే ప్రొటోకాల్స్లాగా, బాగా రూపకల్పన చేసిన ఫారమ్లు స్పష్టమైన స్పందనను అందించి ఖర్చుతో కూడిన తప్పులను నివారిస్తాయి. నొప్పితక్కువ ఫారమ్లు వినియోగదారులను ఆగకుండా పారిపోవడానికి కారణమవుతాయి.
ఈ పాఠంలో, మీ స్థిరమైన బ్యాంకింగ్ యాప్ను ఇంటరాక్టివ్ అప్లికేషన్గా మార్చుతాం. వినియోగదారుల ఇన్పుట్ను ధృవీకరించే, సర్వర్లతో కమ్యూనికేట్ చేసే, సహాయక స్పందనలను అందించే ఫారమ్లు రూపొందించటం నేర్పుతాం. దీన్ని మీ అప్లికేషన్ ఫీచర్స్ను వినియోగదారులు నావిగేట్ చేయగలుగుతున్న నియంత్రణ ఇంటర్ఫేస్ నిర్మాణంగా భావించండి.
చివరిలో, మీరు పూర్తి లాగిన్ మరియు రిజిస్ట్రేషన్ సిస్టమ్ కలిగి ఉంటారు, ఇది వినియోగదారులను నిరుత్సాహం కాకుండా విజయవంతంగా గైడ్ చేస్తుంది.
```mermaid
mindmap
root((ఫారం అభివృద్ధి))
HTML Foundation
Semantic Elements
Input Types
Accessibility
Label Association
User Experience
Validation Feedback
Error Prevention
Loading States
Success Messaging
JavaScript Integration
Event Handling
AJAX Communication
Data Processing
Error Management
Validation Layers
HTML5 Validation
Client-side Logic
Server-side Security
Progressive Enhancement
Modern Patterns
Fetch API
Async/Await
Form Data API
Promise Handling
```
## ముందస్తు అవసరాలు
మనం ఫారమ్లు నిర్మించడం మొదలెట్టేముందు, మీరు సక్రమంగా సర్వ్ చేసుకున్నారని నిర్ధారిద్దాం. ఈ పాఠం గత పాఠంలో మిగళిన చోట నుండే మొదలవుతుంది, కాబట్టి మీరు ముందుకు జారిపోయితే మునుపటి పాఠాలను తిరిగి చూసి ప్రాథమికాలు సెట్ చేసుకోవడం మంచిది.
### అవసరమైన సెటప్
| భాగం | స్థితి | వివరణ |
|-----------|--------|-------------|
| [HTML టెంప్లేట్లు](../1-template-route/README.md) | ✅ అవసరం ఉంది | మీ ప్రాథమిక బ్యాంకింగ్ యాప్ నిర్మాణం |
| [Node.js](https://nodejs.org) | ✅ అవసరం ఉంది | సర్వర్ కోసం జావాస్క్రిప్ట్ రన్టైమ్ |
| [బ్యాంక్ API సర్వర్](../api/README.md) | ✅ అవసరం ఉంది | డేటా నిల్వ కోసం బ్యాక్-ఎండ్ సర్వీస్ |
> 💡 **డెవలప్మెంట్ సూచన**: మీరు రెండు ప్రత్యేక సర్వర్లను ఒకేసారి నడపాల్సి ఉంటుంది – ఒకటిసార్వత్రిక ఫ్రంట్-ఎండ్ బ్యాంకింగ్ యాప్ కోసం, మరోటి బ్యాక్ఎండ్ API కోసం. ఇది నిజ జీవిత అభివృద్ధి విధానాన్ని అనుకరిస్తుంది, ఇందులో ఫ్రంట్-ఎండ్, బ్యాక్-ఎండ్ సేవలు స్వతంత్రంగా పని చేస్తాయి.
### సర్వర్ కాన్ఫిగరేషన్
**మీ అభివృద్ధి వాతావరణంలో ఉంటాయి:**
- **ఫ్రంట్-ఎండ్ సర్వర్**: మీ బ్యాంకింగ్ యాప్ను సర్వ్ చేస్తుంది (సాధారణంగా పోర్ట్ `3000`)
- **బ్యాక్ఎండ్ API సర్వర్**: డేటా నిల్వ మరియు పొందిక నిర్వహణ (పోర్ట్ `5000`)
- **రెండు సర్వర్లు** సమకాలీనంగా లేకుండా సంభవంగా నడవగలవు
**మీ API కనెక్షన్ను పరీక్షించడం:**
```bash
curl http://localhost:5000/api
# ఆశించిన ప్రతిస్పందన: "బ్యాంక్ API v1.0.0"
```
**మీకు API వెర్షన్ సమాధానం కనిపిస్తే, మీరు ముందుకు సాగేందుకు సిద్దంగా ఉన్నారు!**
---
## HTML ఫారమ్లు మరియు నియంత్రణల అవగాహన
HTML ఫారమ్లు వినియోగదారులు మీ వెబ్ అప్లికేషన్తో కమ్యూనికేట్ చేయడానికి ఉపయోగిస్తారు. ఇవి 19వ శతాబ్దంలో దూర దూరాలనూ కలిపే టెలిగ్రాఫ్ వ్యవస్థలా భావించండి – వినియోగదారుల ఉద్దేశం మరియు అప్లికేషన్ స్పందన మధ్య కమ్యూనికేషన్ ప్రోటోకాల్. జాగ్రత్తగా రూపకల్పన చేయబడినప్పుడు, అవి తప్పులను పట్టుకునే, ఇన్పుట్ ఫార్మాట్ను మార్గనిర్దేశం చేసే, మరియు సహాయక సూచనలను అందించే విధంగా పనిచేస్తాయి.
ఆధునిక ఫార్మ్లు సాధారణ టెక్స్ట్ ఇన్పుట్ల కంటే చాలా సాంకేతికంగా ఉన్నాయి. HTML5 ప్రత్యేక ఇన్పుట్ రకాల్ని ప్రవేశపెట్టింది, ఇవి స్వయంచాలకంగా ఇమెయిల్ ధృవీకరణ, సంఖ్య ఫార్మాటింగ్, తేదీ ఎంపికను నిర్వహిస్తాయి. ఈ మెరుగుదలలు ప్రాప్తి సహకారమైనదిగా మరియు మొబైల్ వినియోగదారుల అనుభవం కొరకు లాభదాయకంగా ఉంటాయి.
### ఆవశ్యక ఫారమ్ మూలకాలు
**ప్రతి ఫార్మ్కు కావలసిన నిర్మాణ భాగాలు:**
```html
```
**ఈ కోడ్ ఇక్కడ ఏమి చేస్తుంది:**
- **సృష్టిస్తుంది** ఒక ప్రత్యేక గుర్తింపు కలిగిన ఫారమ్ కంటైనర్ను
- **సూచిస్తుంది** డేటా సమర్పణ కోసం HTTP పద్ధతిని
- **కలిపిస్తుంది** లేబుల్స్ ఇన్పుట్లతో ప్రాప్తి సౌలభ్యం కొరకు
- **నిర్థారిస్తుంది** ఫారమ్ను ప్రాసెస్ చేసే సబ్మిట్ బటన్
### ఆధునిక ఇన్పుట్ రకాలు మరియు లక్షణాలు
| ఇన్పుట్ రకం | ఉపయోగం | ఉదాహరణ |
|------------|---------|---------|
| `text` | సాధారణ టెక్స్ట్ ఇన్పుట్ | `` |
| `email` | ఇమెయిల్ ధృవీకరణ | `` |
| `password` | దాచిన పాఠ్యం | `` |
| `number` | సంఖ్యాత్మక ఇన్పుట్ | `` |
| `tel` | ఫోన్ నంబర్లు | `` |
> 💡 **ఆధునిక HTML5 ప్రయోజనం**: ప్రత్యేక ఇన్పుట్ రకాలను ఉపయోగించడం వల్ల స్వయంచాలక ధృవీకరణ, సరైన మొబైల్ కీబోర్డ్లు, మరింత ప్రాప్తిసౌలభ్యం అదనపు జావాస్క్రిప్ట్ అవసరకుండా వస్తుంది!
### బటన్ రకాలు మరియు ప్రవర్తన
```html
```
**ప్రతి బటన్ రకం ఇది చేస్తుంది:**
- **సబ్మిట్ బటన్స్**: ఫారమ్ సమర్పణను ప్రారంభించి డేటాను పేర్కొన్న ఎండ్పాయింట్కు పంపుతాయి
- **రీసెట్ బటన్స్**: అన్ని ఫారమ్ ఫీల్డ్స్ను వారి ప్రారంభ స్థితికి తిరిగి తీసుకొస్తాయి
- **సాధారణ బటన్స్**: ఎలాంటి డిఫాల్ట్ ప్రవర్తనలేని, ఫంక్షనాలిటీ కోసం కస్టమ్ జావాస్క్రిప్ట్ అవసరం
> ⚠️ **ముఖ్య గమనిక**: `` ఎలిమెంట్ స్వయంగా ముగిసే ట్యాగ్, క్లోజింగ్ ట్యాగ్ అవసరం లేదు. ఆధునిక ఉత్తమ ప్రాక్టీస్ ``ను స్లాష్ లేకుండా వ్రాయటం.
### మీ లాగిన్ ఫారమ్ని నిర్మించడం
ఇప్పుడు ఆధునిక HTML ఫారమ్ పద్ధతులను ప్రదర్శించే ప్రాక్టికల్ లాగిన్ ఫారమ్ రూపొందిద్దాం. మేం ప్రాథమిక నిర్మాణంతో మొదలెయ్యి, దానిని సమర్థ ప్రాప్తి లక్షణాలు మరియు ధృవీకరణలతో మెరుగుపరచుతాం.
```html
Bank App
Login
```
**ఇక్కడ ఏమి జరుగుతుందో విడదీస్తే:**
- **రూపకల్పన చేస్తుంది** ఫారమ్ను పార్శ్వ HTML5 మూలకాలతో
- **సమూహీకరించబడి ఉంటుంది** సంబంధిత అంశాలను చక్కటి తరగతుల `div` కంటైనర్లలో
- **కలిపిస్తుంది** లేబుల్స్ను ఇన్పుట్స్ తో `for` మరియు `id` లక్షణాలతో
- **ఉందటానికి సహాయం చేస్తుంది** ఆధునిక లక్షణాలుగా `autocomplete` మరియు `placeholder` వల్ల మెరుగైన వినియోగదారుల అనుభవం
- **జోడిస్తుంది** `novalidate` ఫారమ్ బ్రౌజర్ డిఫాల్ట్ ధృవీకరణను అడ్డుకోవడానికి, జావాస్క్రిప్ట్ ద్వారా నిర్వహించేందుకు
### సరైన లేబుల్స్ శక్తి
**ఆధునిక వెబ్ అభివృద్ధి కోసం లేబుల్స్ ఎందుకు ముఖ్యం:**
```mermaid
graph TD
A[లేబుల్ ఎలిమెంట్] --> B[స్క్రీన్ రీడర్ మద్దతు]
A --> C[క్లిక్ టār్గెట్ పెంపు]
A --> D[ఫాం ధ్రువీకరణ]
A --> E[SEO లాభాలు]
B --> F[అందరికీ అందుబాటులో ఉంది]
C --> G[మొబైల్ అనుభవం మెరుగుపరుస్తుంది]
D --> H[స్పష్టమైన లోప సందేశం]
E --> I[శోధన ర్యాంకింగ్ మెరుగైంది]
```
**సరైన లేబుల్స్ ఇస్తాయిన గుణాలు:**
- **స్క్రీన్ రీడర్లు ఈ ఫారమ్ ఫీల్డ్లను స్పష్టంగా ప్రకటించడానికి సహాయం చేస్తాయి**
- **క్లిక్ చేయదగిన ప్రాంతాన్ని పెంచుతాయి (లేబుల్ పై క్లిక్ చేస్తే ఇన్పుట్ ఫోకస్ అవుతుంది)**
- **మొబైల్ వాడకం మెరుగుపరుస్తాయి పెద్ద టచ్ టార్గెట్లతో**
- **ఫారమ్ ధృవీకరణకు అర్ధవంతమైన లోపాల సందేశాలు అందిస్తాయి**
- **SEOని మెరుగుపరుస్తాయి ఫారమ్ అంశాలకు సాంకేతిక అర్థదట్టత అందించడం ద్వారా**
> 🎯 **ప్రాప్తి లక్ష్యం**: ప్రతి ఫారమ్ ఇన్పుట్కు అనుబంధ లేబుల్ తప్పనిసరి. ఈ సాధారణ పద్ధతి మీ ఫారమ్లను అందరికీ, వీ handicap కలిగిన వినియోగదారులు సహా, ఉపయోగించదగినదిగా మార్చుతుంది మరియు అన్ని వినియోగదారుల అనుభవాన్ని మెరుగుపరుస్తుంది.
### రిజిస్ట్రేషన్ ఫారమ్ సృష్టించడం
రిజిస్ట్రేషన్ ఫారమ్ పూర్తయిన యూజర్ ఖాతా సృష్టించడానికి మరింత వಿಸ್ತృత సమాచారాన్ని కోరుతుంది. దీన్ని ఆధునిక HTML5 లక్షణాలతో మరియు పెరిగిన ప్రాప్తిసౌలభ్యంతో నిర్మిద్దాం.
```html
Register
```
**పై కోడ్లో మనం:**
- **ప్రతీ ఫీల్డ్ను కంటైనర్ divల్లో సక్రమంగా అమర్చాం, శైలీకరణకు మరియు లేఅవుట్కు సహాయం చేస్తుంది**
- **బ్రౌజర్ ఆటోఫిల్ మద్దతు కొరకు సరిఅయిన `autocomplete` లక్షణాలను జోడించాం**
- **వినియోగదారుల ఇన్పుట్ కోసం సహాయక ప్లేస్హోల్డర్ టెక్స్ట్ అందించాం**
- **`value` లక్షణంతో సరిఅయిన డిఫాల్టులను సెట్ చేసాం**
- **`required`, `maxlength`, `min` వంటి ధృవీకరణ లక్షణాలను వర్తింపజేశాం**
- **`type="number"` నిలువు ఖాతా ఫీల్డ్ కోసం, డెసిమల్ మద్దతుతో**
### ఇన్పుట్ రకాలు మరియు ప్రవర్తన అన్వేషణ
**ఆధునిక ఇన్పుట్ రకాలు మెరుగైన ఫంక్షనాలిటీని అందిస్తాయి:**
| లక్షణం | ప్రయోజనం | ఉదాహరణ |
|---------|---------|---------|
| `type="number"` | మొబైల్ పై సంఖ్యాక ప్యాడ్ | సులభమైన బ్యాలెన్స్ ఎంట్రీ |
| `step="0.01"` | దశాంశ ఖచ్చితత్వ నియంత్రణ | కరెన్సీలో సెంట్ల అనుమతి |
| `autocomplete` | బ్రౌజర్ ఆటోఫిల్ | వేగంగా ఫారమ్ పూర్తి |
| `placeholder` | సందర్భానుసార సూచనలు | వినియోగదారుల అంచనాలను గైడ్ చేస్తుంది |
> 🎯 **ప్రాప్తి సవాలు**: మీ ఫారమ్లను కేవలం కీబోర్డ్తో నావిగేట్ చేసి చూడండి! ఫీల్డ్ల మధ్య వెళ్లడానికి `Tab` ఉపయోగించండి, చెక్ బాక్సులు సెట్ చేయడానికి `Space` మరియు సమర్పించడానికి `Enter` వాడండి. ఈ అనుభవం స్క్రీన్ రీడర్ వినియోగదారులు మీ ఫారమ్లను ఎలా వాడతారో అర్థం చేసుకోవడానికి సహాయపడుతుంది.
### 🔄 **పాఠశాల తనిఖీ**
**ఫారమ్ ఆధారమై అవగాహన:** జావాస్క్రిప్ట్ అమలు చేసే ముందు తెలుసుకోవలసినవి:
- ✅ సేమాంటిక్ HTML ద్వారా ప్రాప్తిసౌలభ్య ఫారమ్ నిర్మాణం ఎలా జరుగుతుంది
- ✅ మొబైల్ కీబోర్డ్లు మరియు ధృవీకరణకు ఇన్పుట్ రకాల ప్రాధాన్యత
- ✅ లేబుల్స్ మరియు ఫారమ్ నియంత్రణల సంబంధం
- ✅ ఫారమ్ లక్షణాలు బ్రౌజర్ డిఫాల్ట్ ప్రవర్తనపై ఎలా ప్రభావం చూపుతాయో
**త్వరిత స్వీయ పరీక్ష**: జావాస్క్రిప్ట్ లేకుండా ఫారమ్ సమర్పిస్తే ఏం జరుగుతుంది?
*జవాబు: బ్రౌజర్ డిఫాల్ట్ సమర్పణ చేస్తుంది, సాధారణంగా చర్య URLకి రీడైరెక్ట్ అవుతుంది*
**HTML5 ఫారమ్ లాభాలు**: ఆధునిక ఫార్ములు అందిస్తాయి:
- **బిల్ట్-ఇన్ ధృవీకరణ**: స్వయంచాలక ఇమెయిల్, సంఖ్య ఫార్మాట్ తనిఖీలు
- **మొబైల్ ఆప్టిమైజేషన్**: వివిధ ఇన్పుట్ రకాలకు సరిపోయే కీబోర్డ్లు
- **ప్రాప్తిసౌలభ్యం**: స్క్రీన్ రీడర్ మద్దతు మరియు కీబోర్డ్ నావిగేషన్
- **ప్రోగ్రెసివ్ ఎన్హాన్స్మెంట్**: జావాస్క్రిప్ట్ ఆఫ్ ఉన్నప్పటికీ పనిచేస్తుంది
## ఫారమ్ సమర్పణ పద్ధతుల అవగాహన
ఎవరైనా మీ ఫారమ్ నింపి సబ్మిట్ చేస్తే, ఆ డేటా ఎక్కడో పంపించాలి – సాధారణంగా సమర్పణను స్వీకరించి నిల్వ చేసే సర్వర్ వద్ద. ఇది ఎలా జరుగుతుందో తెలుసుకోవడం తరువాత టెన్షన్స్ నుంచి రక్షిస్తుంది.
సబ్మిట్ బటన్ క్లిక్ చేసినప్పుడు ఏమి జరుగుతుందో చూద్దాం.
### డిఫాల్ట్ ఫారమ్ ప్రవర్తన
మొదట, ప్రాథమిక ఫారమ్ సమర్పణతో ఏమి జరుగుతుందో గమనిద్దాం:
**మీ ప్రస్తుత ఫార్ములను పరీక్షించండి:**
1. ఫారమ్లోని *రిజిస్టర్* బటన్ను క్లిక్ చేయండి
2. బ్రౌజర్ అడ్రస్ బార్ మార్పులను గమనించండి
3. పేజీ రీలోడ్ అవ్వడం మరియు URL లో డేటా కనిపించడం చూసి స్టేట్ గుర్తించండి

### HTTP పద్ధతుల సరిపోలిక
```mermaid
graph TD
A[ఫారం సమర్పణ] --> B{HTTP విధానం}
B -->|GET| C[URL లో డేటా]
B -->|POST| D[అభ్యర్థన శరీరంలో డేటా]
C --> E[అడ్రస్ బార్ లో కనిపిస్తుంది]
C --> F[పరిమిత డేటా పరిమాణం]
C --> G[బుక్మార్క్ చేయగలిగింది]
D --> H[URL నుండి గోప్యంగా]
D --> I[పెద్ద డేటా సామర్థ్యం]
D --> J[ఇంకా సురక్షితం]
```
**వేడుకల తేడాలు:**
| పద్ధతి | ఉపయోగం | డేటా స్థానం | భద్రత స్థాయి | పరిమితి పరిమాణం |
|--------|----------|---------------|----------------|------------------|
| `GET` | శోధన క్వెరీలు, ఫిల్టర్లు | URL పరామితులు | తక్కువ (ప్రత్యక్షంగా ఉండటం) | సుమారు 2000 అక్షరాలు |
| `POST` | వినియోగదారు ఖాతాలు, సున్నితమైన సమాచారం | అభ్యర్థన శరీరం | ఎక్కువ (దాచిన) | ఆలోచనీయ పరిమితి లేదు |
**మూల తేడాలు:**
- **GET**: ఫారమ్ డేటాను URL వద్ద ప్రశ్నా పారామితులుగా జతచేస్తుంది (శోధనల కోసం అనువైనది)
- **POST**: డేటాను అభ్యర్థన శరీరంలో చేర్చుతుంది (సున్నితమైన సమాచారానికి అవసరం)
- **GET పరిమితులు**: పరిమాణ పరిమితులు, ప్రత్యక్ష డేటా, బ్రౌజర్ చరిత్రలో నిల్వ
- **POST ప్రయోజనాలు**: పెద్ద డేటా, గోప్యత, ఫైల్ అప్ప్లోడ్ మద్దతు
> 💡 **ఉత్తమ ఆచరణ**: శోధన ఫారమ్లు, ఫిల్టర్లకు `GET` వాడండి (డేటా పొందిక), వినియోగదారు నమోదు, లాగిన్, డేటా సృష్టికి `POST` వాడండి.
### ఫారమ్ సమర్పణ కాన్ఫిగరేషన్
మీ రిజిస్ట్రేషన్ ఫారమ్ బ్యాక్ఎండ్ APIతో POST పద్ధతిలో సక్రమంగా కమ్యూనికేట్ చేయడానికి కాన్ఫిగర్ చేద్దాం:
```html
```
**மேம்பட்ட వెరిఫికేషన్ అవగాహన:**
- తప్పనిసరి ఫీల్డ్ సూచికలతో సహా కలిపి
- ఫార్మాట్ వెరిఫికేషన్ కోసం `pattern` లక్షణాలు కలిగి ఉంటుంది
- యాక్సెసిబిలిటీ మరియు టూల్టిప్స్ కోసం `title` లక్షణాలు అందిస్తుంది
- యూజర్ ఇన్పుట్కు మార్గదర్శకం చేసే సహాయక పాఠ్యాలను జోడిస్తుంది
- మెరుగైన యాక్సెసిబిలిటీ కోసం సీమాంటిక్ HTML నిర్మాణం వాడుతుంది
### అధునాతన వెరిఫికేషన్ నియమాలు
**ప్రతి వెరిఫికేషన్ నియమం సాధించేది:**
| ఫీల్డ్ | వెరిఫికేషన్ నియమాలు | వినియోగదారుని లాభం |
|-------|------------------|--------------|
| యూజర్నేమ్ | `required`, `minlength="3"`, `maxlength="20"`, `pattern="[a-zA-Z0-9_]+"` | సరైన, ప్రత్యేక గుర్తింపులు నిర్ధారిస్తుంది |
| కరెన్సీ | `required`, `maxlength="3"`, `pattern="[A-Z$€£¥₹]+"` | సాధారణ కరెన్సీ చిహ్నాలను అంగీకరిస్తుంది |
| బ్యాలెన్స్ | `min="0"`, `step="0.01"`, `type="number"` | హెచ్చుతగ్గులేని బ్యాలెన్స్లను నివారిస్తుంది |
| వివరణ | `maxlength="100"` | తగిన పొడవు పరిమితులు |
### వెరిఫికేషన్ ప్రవర్తనను పరీక్షించండి
**ఈ వెరిఫికేషన్ పరిస్థితులను ప్రయత్నించండి:**
1. తప్పనిసరి ఖాళీ ఫీల్డ్లతో ఫారమ్ సబ్మిట్ చేయండి
2. 3 అక్షరాలకు తక్కువ లేనేమ్ ఎంటర్ చేయండి
3. యూజర్నేమ్ ఫీల్డ్లో ప్రత్యేక అక్షరాలు ప్రయత్నించండి
4. నెగటివ్ బ్యాలెన్స్ విలువ ఎంటర్ చేయండి

**మీరు గమనించేది:**
- బ్రౌజర్ ఒక లోకల్ వెరిఫికేషన్ సందేశాలను చూపిస్తుంది
- `:valid` మరియు `:invalid` స్థితుల ఆధారంగా స్టైలింగ్ మారుతుంది
- అన్ని వెరిఫికేషన్లు పూర్తి కాకపోతే ఫారమ్ సమర్పణ నిరోధించబడుతుంది
- ఆటోమేటిక్గా మొదటి చెడు ఫీల్డ్కి ఫోకస్ వెళుతుంది
### క్లయింట్-సైడ్ vs సర్వర్-సైడ్ వెరిఫికేషన్
```mermaid
graph LR
A[క్లయింట్-సైడ్ ధృవీకరణ] --> B[తక్షణ ఫీడ్బ్యాక్]
A --> C[మంచి వినియోగదారు అనుభవం]
A --> D[తగ్గిన సర్వర్ లోడ్]
E[సర్వర్-సైడ్ ధృవీకరణ] --> F[భద్రత]
E --> G[డేటా ఐక్యత]
E --> H[వ్యాపార నియమాలు]
A -.-> I[రెண்டும் అవసరం]
E -.-> I
```
**రెండు స్థరాలు ఎందుకు అవసరం:**
- **క్లయింట్-సైడ్ వెరిఫికేషన్**: తక్షణ ఫీడ్బ్యాక్ ఇస్తుంది మరియు వినియోగదారుల అనుభవాన్ని మెరుగుపరుస్తుంది
- **సర్వర్-సైడ్ వెరిఫికేషన్**: భద్రతను నిర్ధారిస్తుంది మరియు క్లిష్టమైన వ్యాపార నియమాలను నిర్వహిస్తుంది
- **కలిపిన విధానం**: బలమైన, వినియోగదారుల అనుకూల మరియు సురక్షిత అనువర్తనాలను సృష్టిస్తుంది
- **ప్రోగ్రెసివ్ ఎन्हాన్స్మెంట్**: JavaScript డిసేబుల్ అయినా పని చేస్తుంది
> 🛡️ **సెక్యూరిటీ జ్ఞాపకం**: ఎప్పుడూ క్లయింట్-సైడ్ వెరిఫికేషన్ మాత్రమే నమ్మకాదరు! దురుద్దేశ్యులైనా వినియోగదారులు ఈ తనిఖీలను దాటవేయగలరు కనుక, సర్వర్-వైపు వెరిఫికేషన్ భద్రత మరియు డేటా సమగ్రతకు అవసరం.
### ⚡ **తర్వాతి 5 నిమిషాల్లో మీరు చేయగలది**
- [ ] తప్పు డేటాతో మీ ఫారంను పరీక్షించి వెరిఫికేషన్ సందేశాలు చూడండి
- [ ] JavaScript ఆపివేయబడినప్పుడు ఫారమ్ ను సబ్మిట్ చేసి HTML5 వెరిఫికేషన్ ను గమనించండి
- [ ] బ్రౌజర్ DevTools ఓపెన్ చేసి సర్వర్కు పంపబడుతున్న ఫారమ్ డేటా చూడండి
- [ ] మొబైల్ కీబోర్డ్ మార్పుల కోసం వేరే ఇన్పుట్ రకాలను ప్రయోగించండి
### 🎯 **ఈ గంటలో సాధించగలిగేది**
- [ ] పాఠం అనంతరం క్విజ్ పూర్తి చేసి ఫారమ్ హ్యాండ్లింగ్ భావనలను అర్థం చేసుకోండి
- [ ] సమగ్ర వెరిఫికేషన్ చాలెంజ్ను రియల్-టైమ్ ఫీడ్బ్యాక్తో అమలు చేయండి
- [ ] ప్రొఫెషనల్ లుక్ కలిగిన ఫారమ్ల కోసం CSS స్టైలింగ్ జోడించండి
- [ ] పునరావృత యూజర్నేమ్లు మరియు సర్వర్ లోపాల కోసం లోపాల నిర్వహణ సృష్టించండి
- [ ] సరిపోలే వేరుసార్వత్రిక పాస్వర్డ్ నిర్ధారణ ఫీల్డ్లు జత చేయండి
### 📅 **మీ వారాంత ఫారమ్ నైపుణ్య యాత్ర**
- [ ] అధునాతన ఫార్మ్ లక్షణాలతో పూర్తి బ్యాంకింగ్ యాప్ ను పూర్తి చేయండి
- [ ] ప్రొఫైల్ ఫోటోలు లేదా డాక్యుమెంట్ల కొరకు ఫైల్ అప్లోడ్ సామర్థ్యాలు కలపండి
- [ ] ప్రగతిశీల సూచికలు మరియు స్థితి నిర్వహణతో బహుళ దశల ఫారమ్లను అమలు చేయండి
- [ ] వినియోగదారుల ఎంపికల ఆధారంగా అనుకూలించే డైనమిక్ ఫారమ్లను సృష్టించండి
- [ ] మెరుగైన వినియోగదారు అనుభవం కోసం ఫార్మ్ ఆటోసేవ్ మరియు రికవరీ అమలు చేయండి
- [ ] ఇమెయిల్ ధృవీకరణ, ఫోన్ నంబర్ ఫార్మాటింగ్ వంటి అధునాతన వెరిఫికేషన్ జోడించండి
### 🌟 **మీ నెల పొడవైన ఫ్రంట్ఎండ్ అభివృద్ధి నైపుణ్యం**
- [ ] షరతులు మరియు వర్క్ఫ్లోలతో కాంప్లెక్స్ ఫారమ్ అప్లికేషన్లను నిర్మించండి
- [ ] వేగవంతమైన అభివృద్ధికి ఫారమ్ లైబ్రరీలు మరియు ఫ్రేమ్వర్క్లు నేర్చుకోండి
- [ ] యాక్సెసిబిలిటీ మార్గదర్శకాలు మరియు పరస్పర డిజైన్ సూత్రాలలో నైపుణ్యం పొందండి
- [ ] అంతర్జాతీయీకరణ మరియు స్థానికీకరణ ఆధారమైన ప్రపంచవ్యాప్తంగా ఫారమ్లను అమలు చేయండి
- [ ] పునర్వినియోగం అవకాశం ఉన్న ఫారమ్ కంపోనెంట్ లైబ్రరీలు మరియు డిజైన్ సిస్టమ్లను సృష్టించండి
- [ ] ఓపెన్ సోర్స్ ఫారమ్ ప్రాజెక్టులకు విరాళం ఇవ్వండి మరియు ఉత్తమ పద్ధతులను పంచుకోండి
## 🎯 మీ ఫారమ్ అభివృద్ధి నైపుణ్య టైమ్లైన్
```mermaid
timeline
title ఫారమ్ అభివృద్ధి & వినియోగదారు అనుభవం నేర్చుకునే పురోగతి
section HTML ఫౌండేషన్ (15 నిమిషాలు)
వెలుపల ఫారమ్లు: ఫారం మూలకాలు
: ఇన్పుట్ రకాల
: లేబుళ్లు మరియు యాక్సెసిబిలిటీ
: నిరంతర మెరుగుదల
section జావాస్క్రిప్ట్ ఇంటిగ్రేషన్ (25 నిమిషాలు)
ఈవెంట్ హాండ్లింగ్: ఫారం సమర్పణ
: డేటా సేకరణ
: AJAX కమ్యూనికేషన్
: అసింక్/ఆవెయిట్ నమూనాలు
section ఎలుకేషన్ సిస్టమ్స్ (35 నిమిషాలు)
బహుళ-హేతుబద్ధ సెక్యూరిటీ: HTML5 నిర్ధారణ
: క్లయింట్-సైడ్ లాజిక్
: సర్వర్-సైడ్ ధ్రువీకరణ
: తప్పిద నిర్వహణ
section వినియోగదారు అనుభవం (45 నిమిషాలు)
ఇంటర్ఫేస్ పొలిష్: లోడింగ్ స్థితులు
: విజయం సందేశం
: తప్పిద పునరుద్ధరణ
: యాక్సెసిబిలిటీ ఫీచర్లు
section అధునాతన నమూనాలు (1 వారం)
ప్రొఫెషనల్ ఫారమ్లు: డైనమిక్ నిర్ధారణ
: బహుళ-దశ వర్క్ఫ్లోలు
: ఫైల్ అప్లోడ్లు
: నిజ సమయ ఫీడ్బ్యాక్
section ఎంటర్ప్రైజ్ నెపుణ్యాలు (1 నెల)
ప్రొడక్షన్ అప్లికేషన్లు: ఫారం లైబ్రరీలు
: పరీక్షించు వ్యూహాలు
: పనితీరు ఆప్టిమైజేషన్
: భద్రత ఉత్తమ పద్ధతులు
```
### 🛠️ మీ ఫారమ్ అభివృద్ధి పనిముట్ల సారాంశం
ఈ పాఠం పూర్తయిన తర్వాత, మీరు ఇప్పుడు నైపుణ్యం సంపాదించుకున్నారు:
- **HTML5 Forms**: సీమాంటిక్ నిర్మాణం, ఇన్పుట్ రకాలు, యాక్సెసిబిలిటీ ఫీచర్లు
- **JavaScript Form Handling**: ఈవెంట్ నిర్వహణ, డేటా సేకరణ, AJAX కమ్యూనికేషన్
- **వెరిఫికేషన్ ఆర్కిటెక్చర్**: భద్రత మరియు వినియోగదారు అనుభవం కోసం బహుళ-స్థర వెరిఫికేషన్
- **అసింక్రోనస్ ప్రోగ్రామ్మింగ్**: ఆధునిక fetch API మరియు async/await ప్యాటర్న్లు
- **లోపాల నిర్వహణ**: సమగ్ర లోపాల హ్యాండ్లింగ్ మరియు వినియోగదారుల ఫీడ్బ్యాక్ వ్యవస్థలు
- **వినియోగదారు అనుభవం డిజైన్**: లోడింగ్ స్థితులు, విజయ సందేశాలు, లోపాల పునరుద్ధరణ
- **ప్రోగ్రెసివ్ ఎంహాన్స్మెంట్**: అన్ని బ్రౌజర్లు మరియు సామర్థ్యాలలో పని చేసే ఫారమ్లు
**వాస్తవ ప్రపంచ అనువర్తనాలు**: మీ ఫారమ్ అభివృద్ధి నైపుణ్యాలు నేరుగా వర్తిస్తాయి:
- **ఈ-కామర్స్ అనువర్తనాలు**: చెకౌట్ ప్రక్రియలు, ఖాతా నమోదు, చెల్లింపు ఫారమ్లు
- **ఎంటర్ప్రైజ్ సాఫ్ట్వేర్**: డేటా ఎంట్రీ సిస్టమ్లు, రిపోర్టింగ్ ఇంటర్ఫేస్లు, వర్క్ఫ్లో అనువర్తనాలు
- **కంటెంట్ మేనేజ్మెంట్**: ప్రచురణ వేదికలు, వినియోగదారుల రూపొందించిన కంటెంట్, প্রশাসన ఇంటర్ఫేస్లు
- **ఆర్థిక అనువర్తనాలు**: బ్యాంకింగ్ ఇంటర్ఫేస్లు, పెట్టుబడి వేదికలు, లావాదేవీ సిస్టమ్లు
- **ఆరోగ్య సంరక్షణ వ్యవస్థలు**: రోగి పోర్టల్స్, అపాయింట్మెంట్ షెడ్యూలింగ్, వైద్యం రికార్డ్ ఫారమ్లు
- **అధ్యయన వేదికలు**: కోర్సు నమోదు, మూల్యాంకన టూల్స్, విద్య నిర్వహణ
**మీకు లభించిన ప్రొఫెషనల్ నైపుణ్యాలు**: మీరు ఇప్పుడు:
- అందరికీ (విగ్రహ సమస్యలు ఉన్నవారును సహా) పనిచేసే యాక్సెసిబుల్ ఫారమ్లను డిజైన్ చేయగలరు
- డేటా ధ్వంసం మరియు భద్రతా లోపాలను నివారించే సురక్షిత ఫారమ్ వెరిఫికేషన్ అమలు చేయగలరు
- స్పష్టమైన ఫీడ్బ్యాక్ మరియు మార్గదర్శకం అందించే ప్రతిస్పందన UIని సృష్టించగలరు
- బ్రౌజర్ డెవలపర్ టూల్స్ మరియు నెట్వర్క్ విశ్లేషణతో క్లిష్టమైన ఫారమ్ పరస్పర చర్యలను డీబగ్ చేయగలరు
- సమర్ధవంతమైన డేటా నిర్వహణ మరియు వెరిఫికేషన్ వ్యూహాల ద్వారా ఫారమ్ పనితీరును మెరుగుపరచగలరు
**ఫ్రంట్ఎండ్ అభివృద్ధి భావనల్లో ప్రావీణ్యం**:
- **ఈవెంట్-డ్రైవన్ ఆర్కిటెక్చర్**: వినియోగదారు అంతర్యోగ నిర్వహణ మరియు స్పందన వ్యవస్థలు
- **అసింక్రోనస్ ప్రోగ్రామ్మింగ్**: నిర్ధిక్షిప్త సర్వర్ కమ్యూనికేషన్ మరియు లోపాల నిర్వహణ
- **డేటా వెరిఫికేషన్**: క్లయింట్-సైడ్ మరియు సర్వర్-సైడ్ భద్రత మరియు సమగ్రత తనిఖీలు
- **వినియోగదారు అనుభవ డిజైన్**: విజయం వై-directed సులభమైన ఇంటర్ఫేస్లు
- **అక్సెసిబిలిటీ ఇంజనీరింగ్**: విభిన్న వినియోగదారుల అవసరాలకు పనిచేసే సమగ్ర డిజైన్
**తరువాతి దశ**: మీరు ఆధునిక ఫారమ్ లైబ్రరీలను అన్వేషించడానికి, క్లిష్ట వెరిఫికేషన్ నియమాలను అమలు చేయడానికి లేదా ఎంటర్ప్రైజ్-గ్రేడ్ డేటా సేకరణ సిస్టమ్లను నిర్మించడానికి సిద్ధంగా ఉన్నారు!
🌟 **అభివృద్ధి పూర్తి**: మీరు ప్రొఫెషనల్ వెరిఫికేషన్, లోపాల నిర్వహణ మరియు వినియోగదారుని అనుభవ నమూనాలతో పూర్తి ఫారమ్ హ్యాండ్లింగ్ సిస్టమ్ను నిర్మించారు!
---
---
## GitHub Copilot Agent Challenge 🚀
Use the Agent mode to complete the following challenge:
**Description:** Enhance the registration form with comprehensive client-side validation and user feedback. This challenge will help you practice form validation, error handling, and improving user experience with interactive feedback.
**ప్రాంప్ట్:** నమోదు ఫారమ్ కోసం సర్వసంపూర్ణ ఫారమ్ ధ్రువీకరణ వ్యవస్థను సృష్టించండి, ఇందులో ఉంటాయి: 1) యూజర్ టైప్ చేస్తున్నప్పుడు ప్రతి ఫీల్డ్ కోసం రియల్-టైమ్ ధ్రువీకరణ ఫీడ్బ్యాక్, 2) ప్రతి ఇన్పుట్ ఫీల్డ్ క్రింద కనిపించే కస్టమ్ ధ్రువీకరణ సందేశాలు, 3) సక్స్మతి ధృవీకరణ ఫీల్డ్తో కూడిన పాస్వర్డ్ ధ్రువీకరణ, 4) దృఢంగా ఉన్న ఫీల్డ్స్ కోసం ఆకుపచ్చ చెక్మార్కులు మరియు సరియైనవ olmayanవలపై ఎరుపు హెచ్చరికల వంటి దృష్టిగల సూచికలు, 5) అన్ని ధ్రువీకరణలు పూర్తి అయినప్పుడు మాత్రమే ఎనేబుల్ అయ్యే సమర్పణ బటన్. HTML5 ధ్రువీకరణ లక్షణాలు, ధ్రువీకరణ अवस्थలకు CSS శైలీకరణ, మరియు ఇంటరాక్టివ్ ప్రవర్తన కోసం JavaScript ఉపయోగించండి.
ఇక్కడ [agent mode](https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode) గురించి మరింత తెలుసుకోండి.
## 🚀 సవాలు
వాడుకరి ఇప్పటికే ఉందని HTML లో ఒక లోపం సందేశాన్ని చూపించండి.
CSS శైలీకరణ తరువాత తుది లాగిన్ పేజీ ఇలా కనిపించవచ్చు:

## పాఠం తర్వాత క్విజ్
[పాఠం తర్వాత క్విజ్](https://ff-quizzes.netlify.app/web/quiz/44)
## సమీక్ష & స్వీయ అధ్యయనం
డెవలపర్లు వారి ఫారమ్ నిర్మాణ ప్రయత్నాలలో చాలా సృజనాత్మకులు అయ్యారు, ముఖ్యంగా ధ్రువీకరణ వ్యూహాల విషయంలో. వివిధ ఫారమ్ ప్రవాహాలను తెలుసుకోవడానికి [CodePen](https://codepen.com) ను పరిశీలించి, ఆసక్తికరమైన మరియు ప్రేరణాత్మక ఫారమ్లను కనుగొనగలరా?
## అసైన్మెంట్
[మీ బ్యాంక్ యాప్ను శైలీకరించండి](assignment.md)
---
**అస్పష్టం**:
ఈ డాక్యుమెంట్ AI అనువాద సేవ అయిన [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడింది. మేము ఖచ్చితత్వం కోసం ప్రయత్నిస్తున్నప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో తప్పులు లేదా పొరపాట్లు ఉండవచ్చని దయచేసి గమనించండి. అసలు డాక్యుమెంట్ దాని స్థానిక భాషలో అధికారిక మూలంగా పరిగణించాలి. ముఖ్యమైన సమాచారం కోసం, ప్రొఫెషనల్ మానవ అనువాదం సిఫారసు చేయబడుతుంది. ఈ అనువాదం వలన ఏర్పడిన ఏవైనా అవగాహన లోపాలు లేదా తప్పుగా అర్థం చేసుకోవడంతో మేము బాధ్యులేమి కాదు.