Chúng tôi có đầu vào type = "number"
và chúng tôi đã đặt phương thức onChange
.Giá trị thay đổi theo cách thủ công không kích hoạt sự kiện onChange nếu giá trị được thay đổi trước khi lập trình
Giá trị mặc định của đầu vào là 0.
Sau đó, chúng ta thay đổi giá trị programatically phải nói, 10
Bây giờ chúng ta thay đổi giá trị bằng tay để 0 một lần nữa.
Phương thức onChange
Phương thức không được gọi là thay đổi được thực hiện thủ công. Tôi nghĩ đó là vì sự kiện này không được gọi khi chúng tôi thay đổi giá trị của họ theo chương trình thành 10. Vì vậy, theo cách mà kiểm soát cho rằng giá trị vẫn là 0.
Điều này chỉ xảy ra khi tôi đặt giá trị theo cách thủ công cho giá trị đã có TRƯỚC KHI thay đổi có lập trình. Nếu tôi sử dụng bất kỳ giá trị nào khác để thực hiện thay đổi thủ công, sự kiện onChange
được kích hoạt chính xác.
Bạn có thể cung cấp ví dụ, chẳng hạn như [jsFiddle] (http://jsfiddle.net), minh họa điều này không? Ngoài ra, những gì bạn đang sử dụng trình duyệt và bạn có chắc chắn trong [hỗ trợ kiểu đầu vào này] (http://caniuse.com/#feat=input-number)? –
đây là js trên safari iOS. Điều thú vị là vấn đề xảy ra chỉ khi tôi thay đổi bằng tay giá trị cho giá trị nó đã có trước khi thay đổi chương trình. Trong bất kỳ trường hợp nào khác, số đầu vào kích hoạt hoàn toàn phương thức onchange của chúng ... –
điều duy nhất nó làm cho tôi một số kết quả tốt là sử dụng sự kiện onInput thay vì onChange .... nhưng tôi không biết nếu nó sẽ mang lại tôi gặp nhiều vấn đề hơn. –