Tôi có biểu mẫu tôi gửi cùng với javascript ngay khi người dùng nhấp vào nhãn. Có một hành vi lạ khi dữ liệu không được đăng. Nhưng nếu tôi gửi mẫu với một sự chậm trễ (ngay cả với một sự chậm trễ của 0) nó hoạt động.Các biến bài đăng không được đặt khi gửi biểu mẫu với JS
Đây là html:
<form action="/other-page" method="post">
<input id="val-1" type="checkbox" name="filter[]" value="1">
<label for="val-1">Value 1</label>
<input id="val-2" type="checkbox" name="filter[]" value="2">
<label for="val-2">Value 2</label>
</form>
Kịch bản:
<script>
$('label').click(function() {
var form = $(this).closest('form')
// if I use the following line the values won't be set
form.submit()
// If I use a `setTimeout` it works, even with a delay of 0
setTimeout(function() {
form.submit()
}, 0)
})
</script>
Nó không phải là một vấn đề lớn như tôi có thể làm công việc này với setTimeout
nhưng văn bản này với một sự chậm trễ từ 0 thực sự là xấu xí. Tôi nghĩ về một lỗi trình duyệt nhưng tôi đã thử nghiệm với Chrome và Firefox và tôi có kết quả tương tự.
Bất kỳ ý tưởng nào về những gì đang xảy ra?
bạn đang chạy này trên DOM sẵn sàng chưa? –
Tôi cho rằng sự kiện 'click' được kích hoạt trước khi các giá trị thực sự bị thay đổi. –
@DavidFregoli Có, xin lỗi tôi quên bao gồm rằng – romainberger