ไม่มีตัวเลือกใดที่นี่ (การเติมข้อความอัตโนมัติ data-lpignore ฯลฯ ) ทำให้ LastPass ไม่สามารถกรอกข้อมูลในช่องฟอร์มของฉันโดยอัตโนมัติได้ ฉันใช้วิธีค้อนเลื่อนมากขึ้นในปัญหาและตั้งค่าname
แอตทริบิวต์การป้อนข้อมูลแบบอะซิงโครนัสผ่าน JavaScript แทน ฟังก์ชันขึ้นอยู่กับ jQuery ต่อไปนี้ (เรียกใช้จากตัวจัดการเหตุการณ์ onsubmit ของฟอร์ม) ทำเคล็ดลับ:
function setInputNames() {
$('#myForm input').each(function(idx, el) {
el = $(el);
if (el.attr('tmp-name')) {
el.attr('name', el.attr('tmp-name'));
}
});
}
$('#myForm').submit(setInputNames);
ในรูปแบบฉันใช้tmp-name
แอตทริบิวต์แทนname
แอตทริบิวต์ที่เทียบเท่ากัน ตัวอย่าง:
<form id="myForm" method="post" action="/someUrl">
<input name="username" type="text">
<input tmp-name="password" type="password">
</form>
อัปเดต 2019-03-20
ฉันยังคงประสบปัญหากับด้านบนเนื่องจาก AngularJS ขึ้นอยู่กับฟิลด์แบบฟอร์มที่มี name
แอตทริบิวต์เพื่อให้ ngMessages แสดงข้อความแสดงข้อผิดพลาดการตรวจสอบความถูกต้องของฟิลด์ได้อย่างถูกต้อง
ในที่สุดวิธีแก้ปัญหาเดียวที่ฉันสามารถพบเพื่อป้องกัน LastPass กรอกรหัสผ่านในแบบฟอร์มเปลี่ยนรหัสผ่านของฉันคือ:
- หลีกเลี่ยงการใช้
input[type=password]
ทั้ง AND
- ไม่มี 'รหัสผ่าน' ในชื่อฟิลด์
เนื่องจากฉันต้องสามารถส่งแบบฟอร์มได้ตามปกติในกรณีของฉันฉันยังคงใช้โซลูชันดั้งเดิมของฉันเพื่ออัปเดตชื่อฟิลด์ 'ทันเวลา' เพื่อหลีกเลี่ยงการใช้ช่องใส่รหัสผ่านฉันพบว่าโซลูชันนี้ใช้งานได้ดีมาก
type="hidden"
แทนการซ่อนด้วย CSS