2013-04-13 23 views
5

kimliğini kullanıyor Birisi, NAME kullanarak form öğeleriyle etkileşimde bulunmanın geçmişini/nedenlerini uygulamaya geçirmiş olabilir ve document.getElementById ürünü devralmıştır.Nedeni çoğu form javascript NAME yerine

Bu değişim ve değişime neden olan, tam olarak tarihsel olarak ne oldu.

Son olarak, bir vardiya var mı, yoksa her ikisi de hala bir şeyler yapmanın yolları mı? Bazı forum tartışmaları document.form.name göre

Document.getElementById vs document.form.name 

tüm tarayıcılar tarafından tanınmamaktadır. Bu dava mı? Bkz:

"I've been told in the past that you should not use "document.form_name.element_name" compared to "document.getElementById()", as the first is not recognized by all browsers. " 
+0

Asıl sorun nedir? “Karşılaştığınız asıl sorunlara dayanarak sadece pratik ve yanıtlanabilir sorular sormalısınız.” Http://stackoverflow.com/faq –

+0

problem her iki şekilde de işe yarar ama kod yazarken neyin daha doğru olduğunu bilmek güzel olurdu. –

+0

“Hangisi daha doğru” yapıcı bir soru olarak yorumlanırsa, bu bir kopyadır (en az bir eski sorunun). –

cevap

3

mülkiyet NAME mutlaka benzersiz değil. Örneğin, radyo düğmeleri aynı ada sahip olacak şekilde gruplandırılmıştır. getElementByName'u çağırmak, kümedeki tüm düğmeleri döndürür. ID'un benzersiz olması amaçlanmıştır. Yani, sorunuzu cevaplamak için her birinin yeri vardır. document.forms[name].element[name] olarak erişildiğinde

+0

Bu gerçekten bir anlam ifade ediyor. NAME aracılığıyla HTML DOM özelliklerinde bulunmama ile ilgili herhangi bir şey biliyor musunuz, bu nedenle kullanılan kod standartlara uygun olarak tanımlanamaz. Ben sadece belgenin ne zaman yazıldığını ve bugün hala geçerli olup olmadığını bilmemekle birlikte, http://jibbering.com/faq/notes/form-access/#faShrt'ı buldum. Tabi ki, bu ifadeyi doğru okumadım. –

1

name evrensel kabul edilebilir. IE 5.5, Firefox 0.8, Opera 5, Navigator 4, vb. De destekleniyor. JQuery'nin sadeliği insanların unuttuğundan modası geçti.

Ama

bir input eleman form nesnesindeki bir özelliği, o zaman işe yaramayabilir erişen aynı ada sahipse:
<form name="hi" action="/go"><input name="action" value="world"> 

Olmalı document.hi.action

size örneğin "[Input değerini "/ go" veya = Dünya] "?

+0

tamamen tarafından sorun aşılabilir gibi. 'Document.forms [ "Merhaba"] gibi spesifik .attributes'' kullanarak görünüyor .elements' [ "eylem"]. Value' ve 'nitelikleri ' document.forms [ "Merhaba" ] .elements ["action"] 've her ikisi de W3C standartlarında görünüyor. – JayC

İlgili konular