2012-03-27 3 views
1
<script type='text/javascript'> 

    function perCheckf(elem){ 
     elem = document.getElementById(elem); 
     if(elem.value.length == 0){ 
      emptymsg('Percentage',elem) 
      elem.focus(); 
      return false; 
     } 
     var uInput = elem.value; 
     if(uInput >= 0 && uInput <= 100 && uInput!=''){ 
      return true; 
     }else{ 
      alertmsg("Please enter between 0 and 100") 
      elem.focus(); 
      return false; 
     } 
    } 
    function notEmpty(elem, helperMsg){ 
     if(elem.value.length == 0){ 
      alert(helperMsg); 
      elem.focus(); // set the focus to this input 
      return false; 
     } 
     return true; 
    } 

    function isNumeric(elem, helperMsg){elem = document.getElementById(elem); 

     if(elem.value.length == 0){ 
      emptymsg('field',elem) 
      elem.focus(); 
      return false; 
     } 
     var numericExpression = /^[0-9]+$/; 

     if(elem.value.match(numericExpression)){ 
      return true; 
     }else{ 
      alertmsg(helperMsg) 
      elem.focus(); 
      return false; 
     } 
    }function emptymsg(emty){ 
      document.getElementById('error').innerHTML="Empty "+emty+": Please Enter value"; 
      document.getElementById('error').style.display="block"; 
    }function alertmsg(helperMsg){ 
      document.getElementById('error').innerHTML=helperMsg; 
      document.getElementById('error').style.display="block"; 
    } 
    function isAlphabet(elem, helperMsg, emty){ 
     var name = document.getElementById(elem); 
     if(name.value.length == 0){ 
      emptymsg(emty,name);   
      name.focus(); // set the focus to this input 
      return false; 
     } 
     var alphaExp = /^[a-zA-Z]+$/; 
     if(name.value.match(alphaExp)){ 
      return true; 
     }else{ 
      alertmsg(helperMsg) 
      name.focus(); 
      return false; 
     } 
    } 

    function isAlphanumeric(elem, helperMsg){ 
     var alphaExp = /^[0-9a-zA-Z]+$/; 
     elem = document.getElementById(elem); 
     if(elem.value.length == 0){ 
      emptymsg('field',elem) 
     } 
     if(elem.value.match(alphaExp)){ 
      return true; 
     }else{ 
      alertmsg(helperMsg) 
      elem.focus(); 
      return false; 
     } 
    } 

    function lengthRestriction(elem, min, max){ 
     var uInput = elem.value; 
     if(uInput.length >= min && uInput.length <= max){ 
      return true; 
     }else{ 
      alert("Please enter between " +min+ " and " +max+ " characters"); 
      elem.focus(); 
      return false; 
     } 
    } 

    function madeSelection(elem, helperMsg){ 
     elem = document.getElementById(elem); 
     if(elem.value == "Please Choose"){ 
      alertmsg(helperMsg); 
      elem.focus(); 
      return false; 
     }else{ 
      return true; 
     } 
    } 

    function emailValidator(elem, helperMsg){ 
     var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/; 
     elem = document.getElementById(elem); 
     if(elem.value.length == 0){ 
      emptymsg('Email',elem) 
      elem.focus(); 
      return false; 
     } 
     if(elem.value.match(emailExp)){ 
      return true; 
     }else{ 
      alertmsg(helperMsg); 
      elem.focus(); 
      return false; 
     } 
    } 
    var formular = [ 
    { func: isAlphabet, params: [ 'firstname', 'Please..' ] }, 
    { func: perCheckf, params: [ 'per' ] } 
    ]; 
function checkForm() { 
alert('checkform'); 
    var validation; 
    for(var i = 0; i < formular.length; i++) 
    validation = formular[i].func(formular[i].params); 
    return validation; 
    } 
    </script> 
    <form [...] onsubmit="return checkForm();"> 
<div id="error" style="display: none;"></div> 
First Name: <input type='text' id='firstname' /><br /> 
Percentage: <input type='text' id='per' /><br /> 
<!-- Address: <input type='text' id='addr' /><br /> 

Username(6-8 characters): <input type='text' id='username' /><br />--> 
Email: <input type='text' id='email' /><br /> 
Zip Code: <input type='text' id='zip' /><br /> 
State: <select id='state'> 
    <option>Please Choose</option> 
    <option>AL</option> 
    <option>CA</option> 
</select><br /> 
<input type='submit' value='Check Form' /> 
</form> 

Это код, который я написал ... Я хочу вместо написания функции onsubmit внутри формы .... хочу написать функцию в сценарии тела, например, для проверки имени я могу написать isAlphabet (' firstname ',' Пожалуйста, введите действительное имя ',' firstname '), так что я могу добавить. Могу ли я обратиться к форме в качестве объекта и элемента формы проверкиФорма подтверждения по необходимости

ответ

1

Положите валидации в объекте так:

var formular = [ 
    { func: isAlphabet, params: [ 'firstname', 'Please..' ] }, 
    { func: perCheckf, params: [ 'per' ] } 
    ]; 

Создать onsubmit функции:

function checkForm() { 
    var validation; 
    for(var i = 0; i < formular.length; i++) 
    validation = formular[i].func(formular[i].params); 
    return validation; 
    } 

An в вашем HTML идти, как это:

<form [...] onsubmit="return checkForm();"> 
+0

Не должен ли это быть st бит be '

'? Обратите внимание, что вы хотите вызвать функцию. – kiswa

+0

@kiswa: Спасибо! – Amberlamps

+0

Нет проблем. +1 к вашему ответу сейчас! – kiswa

0

, если вы используете jQuery, считайте его отличным validation plugin.
Я очень рекомендую.

+0

Нет я не наклоняю для jquery, поскольку я пользуюсь мобильным приложением ..так, я хочу только небольшую функцию, чтобы я мог сделать это легко –