1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-15 14:24:58 +00:00
serenity/Tests/LibWeb/Text/input/HTML/form-implicit-submission.html

94 lines
2.5 KiB
HTML

<form id="defaultButton">
<input />
<button>PASS</button>
</form>
<form id="defaultButtonAsInput">
<input />
<input type="submit" value="PASS" />
</form>
<form id="defaultButtonIsSecond">
<input />
<button type="button">FAIL</button>
<button>PASS</button>
<button type="button">FAIL</button>
</form>
<form id="defaultButtonIsLast">
<input />
<button type="button">FAIL</button>
<button type="button">FAIL</button>
<button>PASS</button>
</form>
<button form="defaultButtonIsBeforeForm">PASS</button>
<form id="defaultButtonIsBeforeForm">
<input />
</form>
<form id="defaultButtonIsAfterForm">
<input />
</form>
<button form="defaultButtonIsAfterForm">PASS</button>
<form id="defaultButtonIsDynamicallyInserted">
<input />
<button>FAIL</button>
</form>
<form id="defaultButtonIsDisabled">
<input />
<button disabled>FAIL</button>
</form>
<form id="noButton">
<input />
</form>
<form id="noDefaultButton">
<input />
<button type="button">FAIL</button>
</form>
<form id="excessiveBlockingElements1">
<input />
<input />
</form>
<form id="excessiveBlockingElements2">
<input />
<input type="time" />
</form>
<script src="../include.js"></script>
<script>
let handledEvent = false;
const enterTextAndSubmitForm = form => {
const input = form.querySelector("input");
handledEvent = false;
internals.sendText(input, "wfh :^)");
internals.commitText();
println(`${form.id}: handledEvent=${handledEvent}`);
};
test(() => {
const button = document.createElement("button");
button.setAttribute("form", "defaultButtonIsDynamicallyInserted");
button.innerText = "PASS";
const dynamicForm = document.getElementById("defaultButtonIsDynamicallyInserted");
dynamicForm.insertBefore(button, dynamicForm.elements[0]);
document.querySelectorAll("form").forEach(form => {
form.addEventListener("submit", event => {
event.preventDefault();
println(`${form.id}: submit`);
handledEvent = true;
});
for (const element of form.elements) {
element.addEventListener("click", () => {
const text = element.value || element.innerText;
println(`${form.id}: click button=${text}`);
handledEvent = true;
});
}
enterTextAndSubmitForm(form);
});
});
</script>