You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: select_field.rs
    path of file: ./repos/modelfox/crates/ui/form
    
    the code of the file until where you have to start completion: use super::FieldLabel;
use pinwheel::prelude::*;
use wasm_bindgen::{prelude::*, JsCast};
use web_sys as dom;

#[derive(builder, Default, new)]
#[new(default)]
pub struct SelectField {
	#[builder]
	pub disabled: Option<bool>,
	#[builder]
	pub id: Option<String>,
	#[builder]
	pub class: Option<String>,
	#[
    
pub fn select_field_submit_on_change(id: String) {
	let document = dom::window().unwrap().document().unwrap();
	let select_element = document.get_element_by_id(&id).unwrap();
	let callback_fn = Closure::<dyn Fn(_)>::wrap(Box::new(move |event: dom::Event| {
		if let Some(event) = event.current_target() {
			let form = event
				.dyn_ref::<dom::HtmlElement>()
				.unwrap()
				.closest("form")
				.unwrap();
			form.unwrap()
				.dyn_ref::<dom::HtmlFormElement>()
				.unwrap()
				.submit()
				.ok();
		}
	}));
	if let Some(select_element) = select_element.dyn_ref::<dom::HtmlSelectElement>() {
		select_element
			.add_event_listener_with_callback("change", callback_fn.as_ref().unchecked_ref())
			.unwrap();
	}
	callback_fn.forget();
}