HTMLFormElement: phương thức requestSubmit()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.
Phương thức requestSubmit() của HTMLFormElement yêu cầu biểu mẫu được gửi bằng một nút gửi cụ thể.
Cú pháp
requestSubmit()
requestSubmit(submitter)
Tham số
submitterOptional-
Một submit button là thành viên của biểu mẫu.
Nếu
submitterchỉ định các thuộc tínhform*, chúng sẽ ghi đè hành vi gửi của biểu mẫu (ví dụ:formmethod="POST").Nếu
submittercó thuộc tínhnamehoặc là một<input type="image">, dữ liệu của nó sẽ được bao gồm trong việc gửi biểu mẫu (ví dụ:btnName=btnValue).Nếu bạn bỏ qua tham số
submitter, chính phần tử biểu mẫu sẽ được sử dụng làm nút gửi.
Giá trị trả về
Không có (undefined).
Ngoại lệ
TypeError-
Được ném nếu
submitterđược chỉ định không phải là submit button. NotFoundErrorDOMException-
Được ném nếu
submitterđược chỉ định không phải là thành viên của biểu mẫu màrequestSubmit()được gọi. Nút gửi phải là hậu duệ của phần tử biểu mẫu hoặc phải có thuộc tínhformtrỏ đến biểu mẫu.
Ghi chú sử dụng
Câu hỏi rõ ràng là: Tại sao phương thức này tồn tại, trong khi chúng ta đã có phương thức submit() từ thuở sơ khai?
Câu trả lời rất đơn giản. submit() gửi biểu mẫu, nhưng đó là tất cả những gì nó làm. requestSubmit(), mặt khác, hoạt động như thể một nút gửi đã được nhấp. Nội dung của biểu mẫu được xác thực và biểu mẫu chỉ được gửi nếu xác thực thành công. Sau khi biểu mẫu đã được gửi, sự kiện submit được gửi ngược lại đối tượng biểu mẫu.
Ví dụ
Trong ví dụ dưới đây, biểu mẫu được gửi bằng cách cố gắng gửi yêu cầu bằng requestSubmit() nếu nó khả dụng. Nếu tìm thấy nút gửi có ID main-submit, nút đó sẽ được sử dụng để gửi biểu mẫu. Nếu không, biểu mẫu được gửi mà không có tham số submitter, do đó nó được gửi trực tiếp bởi chính biểu mẫu.
Mặt khác, nếu requestSubmit() không khả dụng, mã này sẽ chuyển sang gọi phương thức submit() của biểu mẫu.
let myForm = document.querySelector("form");
let submitButton = myForm.querySelector("#main-submit");
if (myForm.requestSubmit) {
if (submitButton) {
myForm.requestSubmit(submitButton);
} else {
myForm.requestSubmit();
}
} else {
myForm.submit();
}
Đặc điểm kỹ thuật
| Specification |
|---|
| HTML> # dom-form-requestsubmit-dev> |