Có cách nào để gửi biểu mẫu HTML sử dụng JavaScript được đảm bảo hoạt động trong mọi tình huống không?Làm cách nào để gửi biểu mẫu HTML với JavaScript?
Tôi xây dựng. Cách tiếp cận thông thường có vẻ là:
formElement.submit()
Tất cả đều tốt và tốt ngoại trừ một điều. Các trường của biểu mẫu có sẵn dưới dạng thuộc tính của formElement
, vì vậy nếu có trường có tên hoặc id "text1", nó có thể được truy cập là formElement.text1
.
Điều này có nghĩa rằng nếu một yếu tố được gọi là "submit" (có thể là tên của nó hoặc id của nó), sau đó formElement.submit()
sẽ không hoạt động. Điều này là do formElement.submit
sẽ không phải là một phương thức của biểu mẫu, nhưng trường có tên đó. Thật không may, nó khá phổ biến mà các nút gửi có một "gửi" tên hoặc id.
Hai ví dụ để minh họa quan điểm của tôi. Đầu tiên, các phần sau sẽ KHÔNG hoạt động, bởi vì phần tử của biểu mẫu có tên "submit":
<form name="example" id="example" action="/">
<button type="button" name="submit" onclick="document.example.submit(); return false;">Submit</button>
</form>
Sau đây sẽ làm việc. Điểm khác biệt duy nhất là tôi đã xóa tên "gửi" khỏi biểu mẫu:
<form name="example" id="example" action="/">
<button type="button" onclick="document.example.submit(); return false;">Submit</button>
</form>
Vì vậy, có cách nào khác để gửi biểu mẫu HTML bằng JavaScript không?
khá khó chịu ... Tôi đã cùng một vấn đề với "chiều dài" tài sản của các hình thức (số kiểm soát) được thay thế bằng giá trị của một kiểm soát có tên là "chiều dài". Cuối cùng tôi đã thay đổi tên của điều khiển. –
Xem http://stackoverflow.com/questions/876243/why-does-naming-your-html-form-submit-button-submit-break-things –
Tôi có ngốc không nếu tôi đề xuất chỉ cho nó một cái tên khác. .? Ví dụ. '" action "' hoặc '" run "'. – BalusC