Merge pull request #926 from Demonthos/prevent-default-form-web
This commit is contained in:
1 file changed
+13
-3
+13
-3
@@ -56,17 +56,27 @@ impl WebsysDom {
|
|||||||
let element = walk_event_for_id(event);
|
let element = walk_event_for_id(event);
|
||||||
let bubbles = dioxus_html::event_bubbles(name.as_str());
|
let bubbles = dioxus_html::event_bubbles(name.as_str());
|
||||||
if let Some((element, target)) = element {
|
if let Some((element, target)) = element {
|
||||||
|
let prevent_event;
|
||||||
if let Some(prevent_requests) = target
|
if let Some(prevent_requests) = target
|
||||||
.get_attribute("dioxus-prevent-default")
|
.get_attribute("dioxus-prevent-default")
|
||||||
.as_deref()
|
.as_deref()
|
||||||
.map(|f| f.split_whitespace())
|
.map(|f| f.split_whitespace())
|
||||||
{
|
{
|
||||||
if prevent_requests
|
prevent_event = prevent_requests
|
||||||
.map(|f| f.trim_start_matches("on"))
|
.map(|f| f.trim_start_matches("on"))
|
||||||
.any(|f| f == name)
|
.any(|f| f == name);
|
||||||
{
|
} else {
|
||||||
|
prevent_event = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prevent forms from submitting and redirecting
|
||||||
|
if name == "submit" {
|
||||||
|
// On forms the default behavior is not to submit, if prevent default is set then we submit the form
|
||||||
|
if !prevent_event {
|
||||||
event.prevent_default();
|
event.prevent_default();
|
||||||
}
|
}
|
||||||
|
} else if prevent_event {
|
||||||
|
event.prevent_default();
|
||||||
}
|
}
|
||||||
|
|
||||||
let data = virtual_event_from_websys_event(event.clone(), target);
|
let data = virtual_event_from_websys_event(event.clone(), target);
|
||||||
|
|||||||
Reference in new issue
Block a user