2013-08-07 19 views
8

I dönmek örneğin'action' adlı formdaki bir girdi, formun action özelliğini geçersiz kılar. Bu bir hata mı?

document.forms[0].action 

için, bir şekilde bir nesnenin .action atıfta JavaScript formun işlem erişebilir, Normalde

<form class="form1" method="post" action="form1.php" style="width:405px"> 

olarak işaretlenmiş bir form Ben varsa, formun bir bileşeni olarak, bir öğe adında "eylem" değeri Ancak

form1.php 

, bu "eylem" içerik haline gelir formun eylemi. Form biçimlendirme, örneğin içeriyorsa bu Şimdi, değer

<input name="action" type="hidden" value="check" /> 

Sonra

<input name="action" type="hidden" value="check" /> 

document.forms[0].action 

döndürür, ben bunun üstesinden nasıl işe yaradı: tarafından

Ancak, bu bir Beni çok şaşırttı pis pislik. Bu bir hata mı? DOM yönetimi bilinen bir bilinen var mı? Ya da sadece .getAttribute() kullanma alışkanlığına kapılmalı mıyım?

+1

Hata değil, tarayıcı [IE davranışı] (http://stackoverflow.com/q/1378155/1048572) 'yi [öge adı] biçiminde başlatan - öyleyse doğru - biçimlidir [formname] '. Ancak özniteliğin girdiyi gölgelemesini bekledim… – Bergi

cevap

4

Buna bir hata derim. Bu etki oluşur, çünkü element.attributename kullanarak öznitelikler okunabilir ve bir form içindeki adlandırılmış girişler, formelement.inputname aynı şekilde erişilebilir. Bir öznitelik ve aynı ada sahip bir girdi varsa, hangisinin kullanılacağı konusunda bir garanti yoktur. Muhtemelen farklı tarayıcılarda farklı davranır.

İşaretlemede yer alan veya JavaScript'de setAttribute kullanarak eklenmiş bir özniteliği okurken getAttribute kişisel bilgilerini kullanıyorum. Örneğin, bir onay kutusunun checked özniteliği gibi dinamik değerler için, getAttribute kullanmayın. Ama bu kişisel bir tercih meselesi, sanırım.

+2

'getAttribute 'kullanılırken bir fark,' action 'özelliğinden farklı olarak göreceli URL'ler döndürmesidir. – EricLaw

İlgili konular