Can a scheduler be set on submit of a form in wordpress?

It’s wrong to execute wp_schedule_event in plugin activation and cronjob tag. The correct tag to hook is wp.

WordPress internal cron system works by “request-response” method, it checks for scheduled events immediately after any request to the whole system, after checking the scheduled events, it loads next parts of the system.

So, hooking scheduling to init is too early and cronjob, plugin activation and etc. are too late, they might work, but that’s not the right way.

The best way to schedule your event by user-given data, is getting the data from the database, you can save admin given setting in database (for example update_option) and schedule the event by the given value (get_option) hooked to wp tag.

For example:

add_action( 'wp', 'my_scheduled_event' );
function my_scheduled_event() {
  $interval = get_option( 'task_interval' );
    if ( ! wp_next_scheduled( 'my_daily_task' ) )
        wp_schedule_event( time(), $interval, 'my_daily_task' );
}