چگونه ایجاد کنم: فرم چند مرحلهای
- صفحه قبل تغییر دیدگاه رمز عبور
- صفحه بعدی تکمیل خودکار
یاد بگیرید که چگونه یک فرم چند مرحلهای ایجاد کنید.
راهنمای فرم - فرم چند مرحلهای:
مرحله اول - اضافه کردن HTML:
<form id="regForm" action=""> <h1>ثبت نام:</h1> <!-- هر مرحله از فرم یک "تاب" دارد: --> <div class="tab">نام:</div> <p><input placeholder="نام کوچک..." oninput="this.className = ''"></p> <p><input placeholder="نام خانوادگی..." oninput="this.className = ''"></p> </div> <div class="tab">اطلاعات تماس:</div> <p><input placeholder="ایمیل..." oninput="this.className = ''"></p> <p><input placeholder="فون..." oninput="this.className = ''"></p> </div> <div class="tab">مولدات:</div> <p><input placeholder="یوم" oninput="this.className = ''"></p> <p><input placeholder="مم" oninput="this.className = ''"></p> <p><input placeholder="yyyy" oninput="this.className = ''"></p> </div> <div class="tab">Login Info:</div> <p><input placeholder="Username..." oninput="this.className = ''"></p> <p><input placeholder="Password..." oninput="this.className = ''"></p> </div> <div style="overflow:auto;"> <div style="float:right;"> <button type="button" id="prevBtn" onclick="nextPrev(-1)">Previous</button> <button type="button" id="nextBtn" onclick="nextPrev(1)">Next</button> </div> </div> /* فرم قدموں کا دائرہ کا نشان دہ کریں: */ <div style="text-align:center;margin-top:40px;"> <span class="step"></span> <span class="step"></span> <span class="step"></span> <span class="step"></span> </div> </form>
دوسری قدم - CSS جوڑنا:
فرم عناصر کا سائٹل ست کریں:
/* فرم کا سائٹل ست کرنا: */ #regForm { background-color: #ffffff; margin: 100px auto; padding: 40px; width: 70%; min-width: 300px; } /* آئی اینپُٹ کا سائٹل ست کرنا: */ input { padding: 10px; width: 100%; font-size: 17px; font-family: Raleway; border: 1px solid #aaaaaa; } /* تصدیق کے دوران غلط آئی اینپُٹ کو نشان دہ کریں: */ input.invalid { background-color: #ffdddd; } /* تمام قدموں کو خفی رکھنا: */ .tab { display: none; } /* قائمہ عملیاتی کا دائرہ بنانا: */ .step { height: 15px; width: 15px; margin: 0 2px; background-color: #bbbbbb; border: none; border-radius: 50%; display: inline-block; opacity: 0.5; } /* آج کا مرحلہ کو مارکر: */ .step.active { opacity: 1; } /* مکمل اور صحیح مرحلہ کو مارکر: */ .step.finish { background-color: #04AA6D; }
مرحلہ 3 - جاوا اسکریپٹ شروع کریں:
var currentTab = 0; // آج کا تاحاق کو پہلے تاحاق (0) میں قائم کیا جائے showTab(currentTab); // دکھایا جائے کہ آج کس تاحاق کا آغاز کیا جائے function showTab(n) { منظور ہے کہ اس فنکشن کو مُحل تاحاق کا معین کردار دکھایا جائے: var x = document.getElementsByClassName("tab"); x[n].style.display = "block"; منظور ہے کہ ... اور پچھلے/آئندہ دکھانے کا بٹن ترمیم کیا جائے: if (n == 0) { document.getElementById("prevBtn").style.display = "none"; } document.getElementById("prevBtn").style.display = "inline"; } if (n == (x.length - 1)) { document.getElementById("nextBtn").innerHTML = "Submit"; } document.getElementById("nextBtn").innerHTML = "Next"; } منظور ہے کہ ... اور ایک فنکشن چلائی جائے، صحیح مرحلہ کے اندراج کار کو دکھائی جائے: fixStepIndicator(n) } function nextPrev(n) { منظور ہے کہ اس فنکشن کو یہ فیصلہ کرے کہ کس تاحاق کو دکھایا جائے: var x = document.getElementsByClassName("tab"); منظور ہے کہ اگر مُحل تاحاق کے کسی فیلڈ کو صحیح نہیں محسوس کیا جائے تو اس فنکشن سے باہر نکل جائے: if (n == 1 && !validateForm()) return false; منظور ہے کہ مُحل تاحاق بستار نکال دیا جائے: x[currentTab].style.display = "none"; // جاری لینک کو 1 کا فاصلہ اضافہ کریں یا کم کریں: currentTab = currentTab + n; // اگر آپ فورم کی آخری لائن پر آئے ہیں تو... if (currentTab >= x.length) { //... فورم ارسال کیا جائے گا: document.getElementById("regForm").submit(); return false; } // اگر نہ تو صحیح لینک دکھائیں: showTab(currentTab); } function validateForm() { // اس فونکشن کو فورم کا فیلڈ کا��یداری کرنا دینا ہے var x, y, i, valid = true; x = document.getElementsByClassName("tab"); y = x[currentTab].getElementsByTagName("input"); // جاری لینک کا ہر فیلڈ کو چکنا: for (i = 0; i < y.length; i++) { // اگر فیلڈ خالی ہو تو... if (y[i].value == "") { // اس کا کلاس "invalid" کا استعمال آپنائیں: y[i].className += " invalid"; // جوئی کا اسٹیٹس false بنادیا جائے: valid = false; } } // اگر اسٹیٹس صحیح ہو تو اس کا مرحلہ مکمل اور صحیح کا نشان دینا: if (valid) { document.getElementsByClassName("step")[currentTab].className += " finish"; } return valid; // return the valid status } function fixStepIndicator(n) { // اس کا فونکشن تمام اگزیکٹیو کی کلاس "active" کو حذف کرنا دینا ہے... var i, x = document.getElementsByClassName("step"); for (i = 0; i < x.length; i++) { x[i].className = x[i].className.replace(" active", ""); } //... جوئی کا "active" کلاس کا استعمال آپنائیں: x[n].className += " active"; }
- صفحه قبل تغییر دیدگاه رمز عبور
- صفحه بعدی تکمیل خودکار