Search code examples
formsdrupaldrupal-7form-api

How do you programatically create decimal fields in Drupal forms?


I simply need to be able to have a text field and validate if input is a decimal number like 100.00, 0.1, 10.6, etc.

I'm using Drupal 7.

Updated question to indicate 'programatic' solution (using Form API).


Solution

  • You could use #element_validate option for your field and write your own validation function. Maybe you could use is_float() or is_number() in your validation function. So your code

    $form['yourField'] = array(
    ....
    '#element_validate'=>'myValidation'
    );
    ....
    function myValidation($element, &$form_state, $form){
      if (!is_float( $element['#value']) )){
        form_error($element, t('This field is not decimal.'));
      }
    }