Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
- <title>teszt</title>
- <style type="text/css">
- #fm {width:500px;display:block;margin:0; padding:0;}
- #fm label, #fm input {display:inline;float:left;position:relative;margin:0 0 5px 5px; padding:0;font:normal 12px Verdana;}
- #fm label {width:200px; font-weight:700; text-align:right;}
- #fm input {width:250px; text-align:left;}
- #send {width:60px !important;font-weight:700 !important;text-align:center !important; margin-left:200px !important;}
- #log {width:500px;height:100px;display:block;float:left;position:relative;}
- #errorMsg {
- width:300px;height:100px;left:300px;top:200px;display:block;position:fixed;
- text-align:center;vertical-align:middle; border:2px solid #F5F5F5; background:#DDD;
- }
- .failed{background:#FEE;}
- .succeeded{background:#EFE;}
- </style>
- <script src="rule.js" type="text/javascript"></script>
- <script type="text/javascript">
- myRule = {
- first: {
- sbj: "nm",
- fnc: "nn",
- prm: "",
- msg: "Name can not be empty."
- },
- second: {
- sbj: "yr",
- fnc: "gt",
- prm: ".minyr",
- msg: "Must by over 18."
- },
- third: {
- sbj: "yr",
- fnc: "lt",
- prm: "#maxyr",
- msg: "Must be under 99."
- },
- fourth: {
- sbj: "cn",
- fnc: "nn",
- prm: "",
- msg: "Country can not be empty."
- },
- fifth: {
- sbj: "cn",
- fnc: "rg",
- prm: ["^hu","i"],
- msg: "Only for hungarian residents."
- },
- sixth: {
- sbj: "cn",
- fnc: "ex",
- prm: "hu",
- msg: "Only for citizens of republic of Hungary."
- }/*,
- seventh: {
- sbj: "cn",
- fnc: "dd",
- prm: "hu",
- msg: "Errorous rule."
- }*/
- }
- window.onload = function(){
- setElem = function(o,msg,cl){
- var s = "\n";
- if (!o.title || o.title == "" || msg == undefined || msg == "")s = "";
- o.title += s + msg;
- removeClass(o,"succeeded");
- removeClass(o,"failed");
- addClass(o,cl);
- }
- // function to clear given form's inputs
- // defined for formChecker to run on reset
- clear = function(fm){
- var lm = fm.getElementsByTagName("*");
- for (var i = 0; i < lm.length; i++){
- try {
- lm[i].title = "";
- removeClass(lm[i],"succeeded");
- removeClass(lm[i],"failed");
- }catch(e){
- continue;
- }
- }
- }
- // callback to execute on successful check
- success = function(o,msg){
- var c = "succeeded";
- if(gotClass(o,"failed"))c = "failed";
- setElem(o,msg,c);
- }
- // callback to execute on failed check
- fail = function(o,msg){
- setElem(o,msg,"failed");
- }
- // callback to execute on error
- error = function(er){
- if ( !$fc(document.body,"errorMsg") ){
- var ed = document.createElement("div");
- ed.className = "errorMsg";
- ed.title = "click to disappear";
- ed.innerHTML = er;
- document.body.appendChild(ed);
- ed.onclick = function(){ document.body.removeChild(ed); }
- }
- else $fc(document.body,"errorMsg").innerHTML += "<br>" + er;
- }
- var sn = $lm("send");
- var fm = $lm("fm");
- var lg = $lm("log");
- sn.onclick = function(){
- lg.innerHTML = "";
- var fc = new formChecker(fm,myRule,clear,success,fail,error);
- if (fc.chk() == 0){lg.innerHTML = "All checks are ok";}
- }
- }
- </script>
- </head>
- <body>
- <form id="fm" name="fm" method="post">
- <label for="fnm">Firstname</label><input type="text" name="fnm" id="fnm" class="nm" value="fname" />
- <label for="lnm">Lastname</label><input type="text" name="lnm" id="lnm" class="nm" value="lname" />
- <label for="yr">Age</label><input type="text" name="yr" id="yr" class="yr" value="25" />
- <label for="minyr">Minimum age</label><input type="text" name="minyr" id="minyr" class="minyr" value="18" />
- <label for="maxyr">Maximum age</label><input type="text" name="maxyr" id="maxyr" class="maxyr" value="99" />
- <label for="cn">Country</label><input type="text" name="cn" id="cn" class="cn" value="country (short, i.e. hu or en)" />
- <input type="button" name="send" id="send" value="send" />
- </form>
- <br>
- <div id="log"></log>
- </body>
- </html>
Add Comment
Please, Sign In to add comment