Bu, Chrome 81'deki bir otomatik doldurma hatası mı?


2

Ana bilgisayarımda, Ubuntu 18.04 ve Chrome 78 çalıştıran bu form beklediğim gibi çalışıyor - her form bağımsız olarak doldurulabilir.

form {
  border: solid 1px black; 
  padding: 1em; 
  display: inline-block; 
}

form input {
   display: block; 
}
<form>
  <label> name<input type = "text" name ="name" />   </label>
  <label> phone<input type = "text" name ="phone" /> </label>
  <label> email<input type = "text" name ="email" /> </label>
  <button type="submit"> submit</button>
</form>

<form>
  <label> name <input type = "text" name ="name"/> </label>
  <label> phone<input type = "text" name ="phone" /> </label>
  <label> email <input type = "text" name ="email"/> </label>
  <button type="submit"> submit</button>
</form>

CodePen

Ancak - bir Windows makinesinde Chrome 81'de - ikinci formda otomatik doldurmanın seçilmesi ilk formun da doldurulmasına neden olur.

Bu bir hata mı, yoksa otomatik doldurma davranışı mı?

Eğer öyleyse, bunun belgelendiği bir hata izci var mı?


Alanları nameher iki biçimde de aynı şekilde veriyorsunuz . Aralarında ayrım yapmak için, alanlara her formda farklı adlar verin.
harrymc

"78 ve 81" Chrome ? Şunu mu demek istedin "68 and 71"? Orada henüz hiçbir Chrome 81 - güncel kararlı sürüm 71 ve hatta kanarya kanal sadece 74. olduğunu
Meraklı Lurker

Yanıtlar:


0

Bir HTML formundaki adlandırılmış alanlar, kullanıcı profilindeki tarayıcı tarafından değerleri ile birlikte saklanır, böylece otomatik doldurma mekanizmasıyla diğer formlarda tekrar kullanılabilir. Aynı ada sahip bir alan daha sonra bu web sitesinde ve aynı ada sahip alanlara sahip tüm diğer web sitelerinde genel olarak kullanılır.

Form Otomatik Doldurma'nın Chromium makalesinde bu, tablo sütunlarının bulunduğu çiftleri depolayan SQLite Veritabanı tablosunun yapısından görülebilir: pair_id, name, value, count . Kaynak web sitesinin ve orijinal sayfa URL’nin burada görünmediği ve hiçbir önemi olmadığı burada görülebilir.

Form alanları için çeşitli standartlarda bulunabilecek standart adlar kullandınız: isim, telefon, e-posta . Hatta bazı tarayıcılar, profil tanımında bir kullanıcı için değer girmesine izin verir, bu da tarayıcının bu standart alan adlarını kullanarak tüm formları otomatik olarak otomatik olarak doldurmasını sağlar. Tarayıcı sadece iyi bilinen isimlere sahip olanları değil tüm alan değerlerini saklar.

Aynı adları iki kez kullandınız, tarayıcınızın profilinizde saklayacağı ve tekrar kullanılacağı. Otomatik doldururken, aynı algoritmaya göre, örneğin en son girilen veya en çok kullanılanlar gibi aynı ada sahip alanlar için girdiğiniz değerlerden yalnızca birini kullanacaktır. Aslında, alanların her iki formundaki değerlerin, tarayıcının otomatik olarak doldurduktan sonra aynı değerleri kullanarak istediği gibi aynı olduğunu bildirdiniz.

Kullandığınız alan adlarının bilinen diğer varyasyonları da vardır. Örneğin, yanında adı kullandığınız, orada mevcut fname , mname ve lname , ilk, orta ve soyadlarını,.

HTML5'te, form standardı , autocompleteörneğin iş ve ev telefonu numaralarını ayırt etmeyi sağlayan etiket özniteliğinin eklenmesiyle genişletildi . Örneğin:

<p><label>Customer name: <input name="custname" required autocomplete="shipping name"></label></p>
<p><label>Telephone: <input type=tel name="custtel" autocomplete="shipping tel"></label></p>
<p><label>E-mail address: <input type=email name="custemail" autocomplete="shipping email"></label></p>

Yararlı referanslar:


Bu cevabın 79 ile 81 arasındaki davranış farkını açıklamamış gibi hissediyorum
user1068446

Chrome'un standarda daha iyi saygı göstermek için hareket ettiğini ve bu gelişmenin, form alanlarının işlenmesinde HTML5'in evrimi tarafından motive edildiğini düşünüyorum. Söylediklerinize göre, Chrome 78’de kullanım standart değildi.
harrymc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.