Way use jQery to populate the select field when you can use filter and hook into the form using PHP eg:
//1. Add a new form element...
add_action('register_form','_register_form_wpa103118');
function _register_form_wpa103118 (){
$name_of_select = ( isset( $_POST['name_of_select'] ) ) ? $_POST['name_of_select']: '';
$options = array(
'Medicine' => 'Medicine',
'Option2' => 'Option2',
);
?>
<p>
<label for="name_of_select"><?php _e('First Name','mydomain') ?><br />
<select name="name_of_select">
<?php
foreach ($options as $key => $value) {
$selected = ($value == $name_of_select)? ' selected="selected"': '';
echo '<option'.$selected.' value="'.$key.'">'.$value.'</option>';
}
?>
</select>
</p>
<?php
}
//2. Add validation. In this case, we make sure first_name is required.
add_filter('registration_errors', '_registration_errors_wpa103118', 10, 3);
function _registration_errors_wpa103118 ($errors, $sanitized_user_login, $user_email) {
if ( empty( $_POST['name_of_select'] ) )
$errors->add( 'name_of_select', __('<strong>ERROR</strong>: You must select ....') );
return $errors;
}
//3. Finally, save our extra registration user meta. or do whatever you want with it.
add_action('user_register', '_user_register_wpa103118');
function _user_register_wpa103118 ($user_id) {
if ( isset( $_POST['name_of_select'] ) )
update_user_meta($user_id, 'name_of_select', $_POST['name_of_select']);
}