int ElementFormControlGetAttrname(lua_State* L) { ElementFormControl* efc = LuaType<ElementFormControl>::check(L,1); LUACHECKOBJ(efc); lua_pushstring(L,efc->GetName().CString()); return 1; }
// Submits the form. void ElementForm::Submit(const Rocket::Core::String& name, const Rocket::Core::String& submit_value) { Rocket::Core::Dictionary values; if (name.Empty()) values.Set("submit", submit_value); else values.Set(name, submit_value); Core::ElementList form_controls; Core::ElementUtilities::GetElementsByTagName(form_controls, this, "input"); Core::ElementUtilities::GetElementsByTagName(form_controls, this, "textarea"); Core::ElementUtilities::GetElementsByTagName(form_controls, this, "select"); Core::ElementUtilities::GetElementsByTagName(form_controls, this, "dataselect"); for (size_t i = 0; i < form_controls.size(); i++) { ElementFormControl* control = rocket_dynamic_cast< ElementFormControl* >(form_controls[i]); if (!control) continue; // Skip disabled controls. if (control->IsDisabled()) continue; // Only process controls that should be submitted. if (!control->IsSubmitted()) continue; Rocket::Core::String control_name = control->GetName(); Rocket::Core::String control_value = control->GetValue(); // Skip over unnamed form controls. if (control_name.Empty()) continue; // If the item already exists, append to it. Rocket::Core::Variant* value = values.Get(control_name); if (value != NULL) value->Set(value->Get< Rocket::Core::String >() + ", " + control_value); else values.Set< Rocket::Core::String >(control_name, control_value); } DispatchEvent("submit", values); }