Safari 10.0 trong macOS Sierra dường như đã thay đổi cách trình giữ chỗ trong đầu vào hoạt động khi giá trị đầu vào được thay đổi thông qua JavaScript. Nó bây giờ cũng khác với những gì Chrome (53.0.2785.116) đang làm.Hành vi giữ chỗ đầu vào mới trong Safari 10 - không còn ẩn trên thay đổi qua JavaScript
Cho đến bây giờ, khi đặt giá trị đầu vào thông qua JavaScript, trình giữ chỗ sẽ biến mất. Sau khi đặt giá trị trở lại trống thông qua JavaScript, trình giữ chỗ sẽ xuất hiện trở lại.
Hiện tại, đặt giá trị đầu vào qua JavaScript không ẩn trình giữ chỗ, cho đến khi đầu vào tăng tiêu điểm sau đó (ví dụ: bằng cách nhấp vào).
Kiểm tra này JS Bin cho một bản demo: https://jsbin.com/rogoludahu/edit?html,js,output
Đây có phải là hành vi có ý định? Nếu vậy, có cách giải quyết thông minh nào để ẩn/bỏ ẩn trình giữ chỗ sau khi thay đổi qua JavaScript không?
Chỉnh sửa: Điều này hiện đã được nộp tại rdar: // 28412751 cho Safari 10 và Xem trước công nghệ Safari.
Tôi nhận thấy hành vi tương tự! Đối với tôi, điều này có vẻ là một lỗi –
Rất có thể là một lỗi. Thay vì cách hacky để sửa chữa là đặt giá trị hai lần như một giải pháp tạm thời https://jsbin.com/qiloyuxura/1/edit?html,js,output –
hãy thử điều này có thể: document.getElementById ("myInput"). SetAttribute ('giá trị', "Giá trị mới"); –