Dynamically add input field using #ajax
You should do something like this

$form['raf_prize_type'] = array(
        '#type' =&gt; "select",
        "#options" =&gt; array('gift' =&gt; 'Steam Gift', 'hardware' =&gt; 'Gaming peripherals'),
        "#title" =&gt; "Prize type",
        "#ajax" =&gt; array(
            'callback' =&gt; 'raffle_create_form_type_steam',
            'wrapper' =&gt; 'steam_options',
            'event' =&gt; 'change',
           'method' =&gt; 'replace',
        ),
    );



$form['raf_prize_name'] = array(
        '#type' =&gt; "textfield",
        "#title" =&gt; "Prize name",
        '#prefix' =&gt; '&lt;div id="steam options"&gt;',
        '#suffix' =&gt; '&lt;/div&gt;'
    );


And your callback function should be

function raffle_create_form_type_steam($form, $form_state){



    return $form['raf_prize_name'];
}