2012-10-01 97 views
0

從HTML5開始,廣泛使用和推薦的action=""是無效的HTML。表單元素上的action屬性是否可以爲空?

從規格:

的動作和formaction內容屬性,如果指定,必須有 的值是一個有效的URL。

那麼action屬性指向當前頁面的正確方法是什麼?

我目前使用

action="<php htmlspecialchars($_SERVER["REQUEST_URI"]); ?>" 
+2

至於我可以看到它是有效的... http://www.w3.org/TR/2009/WD-html5-20090825/forms.html#attr-fs-action – KingCrunch

+0

你在哪裏看到它的無效無論如何? –

+0

您的意思是說空的屬性是無效的? –

回答

1

這是真實的,action=屬性不能爲空,爲空字符串不是有效的URL。但是,簡單地將其忽略並讓瀏覽器找出它是有效的。

瀏覽器將採用當前頁面。

+0

w3Schools說它「不再需要」:http://www.w3schools.com/html5/att_form_action.asp不知道這是多麼準確。 – Mansfield

+2

@Mansfield:w3schools是一個錯誤的和誤導性的網站。您不應該將其用作任何語言的參考。對於PHP,有[PHP手冊](http://php.net),對於JavaScript,有[Mozilla開發者網絡(或MDN)](https://developer.mozilla.org/)。請參閱http://w3fools.com以進一步瞭解爲什麼您不應該使用w3schools。 –

+0

有趣。我從來沒有把它作爲官方消息來源,但我從來不知道這一點。感謝您的領導! – Mansfield

0

您可以設置值 ''或根本不設置動作屬性。

<form method="post"> 
or 
<form method="post" action="."> 

(我很驚訝,但它是真的無效,至少讓validator.w3.org返回錯誤)。

0

否,在HTML5,所述action attribute可以被省略,並且默認爲emoty串,這意味着當前文檔的引用。

相關問題