I've spent a lot of time to search this feature.
when i have to create a web form or a registration portlet in multistep in liferay.
so we only use a single jsp to create the form and show and hide the fields using java script.
in your view.jsp put this code :)
and in your main.js file put this...
and in your main.css put this file :)
for demo :- Live Demo
when i have to create a web form or a registration portlet in multistep in liferay.
so we only use a single jsp to create the form and show and hide the fields using java script.
in your view.jsp put this code :)
<html><head><title>Multistep Registration Form</title><!--including css file here---><link rel="stylesheet" type="text/css" href="/css/main.css"/><!--including Javascript file here---><script type ="text/javascript" src="/js/main.js"></script></head><body><div class="content"<!-- multistep form --><div class="main"><form class="regform" action="" method ="get"> <!-- progressbar --> <ul id="progressbar"> <li id="active1">Create Account</li> <li id="active2">Educational Profiles</li> <li id="active3">Personal Details</li> </ul> <!-- fieldsets --> <fieldset id="first"> <h2 class="title">Create your account</h2> <p class="subtitle">Step 1</p> <input type="text" name="email" placeholder="Email" /><br/> <input type="password" name="pass" placeholder="Password" /><br/> <input type="password" name="cpass" placeholder="Confirm Password" /><br/> <input type="button" id="next_btn1" value="Next" onclick="next_step1()" /> </fieldset> <fieldset id="second"> <h2 class="title">Educational Profiles</h2> <p class="subtitle">Step 2</p> <select class="options"> <option>--Select Education--</option> <option>Post Graduate</option> <option>Graduate</option> <option>HSC</option> <option>SSC</option> </select><br/> <input type="text" name="marks" placeholder="Marks Obtained" /><br/> <input type="text" name="pyear" placeholder="Passing Year" /><br/> <input type="text" name="univ" placeholder="University" /><br/> <input type="button" id="pre_btn1" value="Previous" onclick="prev_step1()"/> <input type="button" name="next" id="next_btn2" value="Next" onclick="next_step2()" /> </fieldset> <fieldset id="third"> <h2 class="title">Personal Details</h2> <p class="subtitle">Step 3</p> <input type="text" name="fname" placeholder="First Name" /><br/> <input type="text" name="lname" placeholder="Last Name" /><br/> <input type="text" name="cont" placeholder="Contact" /><br/> <label>Gender</label><br/> <input name="gender" type="radio"/>Male<br/> <input name="gender" type="radio"/>Female<br/> <textarea name="address" placeholder="Address"></textarea><br/> <input type="button" id="pre_btn2" value="Previous" onclick="prev_step2()"/> <input type="submit" class="submit_btn" value="Submit" /> </fieldset></form></div></div></body></html> |
and in your main.js file put this...
/*------------validation function-----------------*/var count=0; // to count blank fieldsfunction validation(event){ //fetching radio button by name var radio_check = document.getElementsByName('gender'); //fetching all inputs with same class name text_field and an html tag textarea var input_field = document.getElementsByClassName('text_field'); var text_area = document.getElementsByTagName('textarea'); //validating radio button if(radio_check[0].checked== false && radio_check[1].checked== false){ var y = 0; } else{ var y = 1; } //for loop to count blank inputs for(var i=input_field.length;i>count;i--){ if(input_field[i-1].value==''|| text_area.value=='') { count = count + 1; } else{ count = 0; } } //Notifying validation if(count!=0||y==0){ alert("*All Fields are mandatory*"); event.preventDefault(); } else{ return true; }}/*---------------------------------------------------------*///Function that executes on click of first next buttonfunction next_step1(){ document.getElementById("first").style.display="none"; document.getElementById("second").style.display="block"; document.getElementById("active2").style.color="red"; }//Function that executes on click of first previous buttonfunction prev_step1(){ document.getElementById("first").style.display="block"; document.getElementById("second").style.display="none"; document.getElementById("active1").style.color="red"; document.getElementById("active2").style.color="gray"; }//Function that executes on click of second next buttonfunction next_step2(){ document.getElementById("second").style.display="none"; document.getElementById("third").style.display="block"; document.getElementById("active3").style.color="red"; }//Function that executes on click of second previous button function prev_step2(){ document.getElementById("third").style.display="none"; document.getElementById("second").style.display="block"; document.getElementById("active2").style.color="red"; document.getElementById("active3").style.color="gray"; } |
and in your main.css put this file :)
.content{ width:960px; margin:20px auto; }.main{ float:left; width: 650px; margin-top:80px; }#progressbar{ margin:0; padding:0; font-size:18px; }#active1{ color:red; }fieldset{ display:none; width: 350px; padding:20px; margin-top:50px; margin-left: 85px; border-radius:5px; box-shadow: 3px 3px 25px 1px gray; }#first{ display:block; width: 350px; padding:20px; margin-top:50px; border-radius:5px; margin-left: 85px; box-shadow: 3px 3px 25px 1px gray; }input[type=text],input[type=password],select{ width:100%; margin:10px 0; height:40px; padding:5px; border: 3px solid rgb(236, 176, 220); border-radius: 4px; }textarea{ width:100%; margin:10px 0; height:70px; padding:5px; border: 3px solid rgb(236, 176, 220); border-radius: 4px; }input[type=submit],input[type=button]{ width: 120px; margin:15px 25px; padding: 5px; height: 40px; background-color: sienna; border: none; border-radius: 4px; color: white; font-family: 'Droid Serif', serif; }h2,p{ text-align:center; font-family: 'Droid Serif', serif; }li{ margin-right:52px; display:inline; color:#c1c5cc; font-family: 'Droid Serif', serif; } |
for demo :- Live Demo
No comments:
Post a Comment