isNumeric error

Discussion in 'JavaScript' started by bumbar, Apr 29, 2008.

  1. #1
    Hallo!

    I expect this programme to see entrance of numerals. But it does not work. :confused:

    <script type='text/javascript'>
    function isNumeric(elem, helperMsg){
    var num_error='Numbers Only Please!';
    var numericExpression = /^[0-9]+$/;
    if(numericExpression.test(document.getElementById(elem).value)){
    return true;
    }else{
    document.getElementById(helperMsg).innerHTML=num_error;
    return false;
    }
    }
    </script>
    <span id="err_msg" style="color: red;"></span>
    <form method="post" onSubmit="return isNumeric('numbers', 'Numbers Only Please');">
    Numbers Only: <input type='text' id='numbers'/>
    <input type='submit' name="submit" value='Check Field' />
    </form>

    Where the mistake is? :rolleyes:
     
    bumbar, Apr 29, 2008 IP
  2. Logic Ali

    Logic Ali Well-Known Member

    Messages:
    170
    Likes Received:
    5
    Best Answers:
    0
    Trophy Points:
    108
    #2
    should be "err_msg"
    Don't hard-code element IDs into functions - write functions so that they can be re-used with any form/element:
    
    <script type='text/javascript'>
    
    function isNumeric(elem, msgID, helperMsg)
    {
     var numericExpression = /^[0-9]+$/, result;
     
     if( !(result=numericExpression.test( elem.value)) )
      document.getElementById(msgID).innerHTML = helperMsg;
      
     return result;
    }
    </script>
    <span id="err_msg" style="color: red;"></span>
    
    <form method="post" onsubmit="return isNumeric(this.numbers, 'err_msg', 'Numbers Only Please');">
    
    Numbers Only: <input type='text' name='numbers'/>
    
    <input type='submit' name="fsubmit" value='Check Field' />
    
    </form>
    Code (markup):
     
    Logic Ali, Apr 29, 2008 IP