2013-07-22 203 views
26

我發現在HTML文件中html表單中的「action ='?'」是什麼意思?

'<form action="?" ... ' 

我不明白它的條目。 在Google中搜索未返回任何結果。其實它是一個Django模板文件,但我在django模板文檔中找不到任何東西。

+0

這是[另一個問題的答案](https://stackoverflow.com/a/415335/8554766),解釋完全一樣的東西 –

回答

34

它使用當前URL和空查詢字符串作爲表單的操作。一個空的查詢字符串。 。含義根本沒有查詢字符串。查詢字符串將不再。它不會被使用。它將會消失。提交表單後將不再有查詢字符串。查詢字符串將消失。消失了。走了。不要再做了。

+1

即它是action =「」的同義詞嗎? – user2605845

+10

空行爲不會清除查詢字符串。 –

+1

@ IgnacioVazquez-Abrams您應該將您的評論添加到答案! –

2

在不知道要通過提交表格的網址的時候,我們可以這樣指定 ,它會通過向url添加問號(?) 來重新加載相同的頁面。

即,表單提交給同一頁面本身。它確定 表單被重新加載。

注:我們可以將動作屬性留空,即使它可以工作!

+1

你引用了什麼來源? – AD7six

4

action = atrribute只具有價值。即URL。 用簡單的英語,一旦您的形式處理,你打一個提交按鈕或輸入您將被重定向到你給action屬性

例的網址:

<form action="demo_form.asp" method="get"> 
    First name: <input type="text" name="fname"><br> 
    Last name: <input type="text" name="lname"><br> 
    <input type="submit" value="Submit"> 
</form> 

在你的問題的情況下,如果動作是「?」那麼返回的哈希字符串將是當前URL加「/?」附加這將帶你回到你在同一頁面。

action =「」將解析爲頁面的地址。行動= 「?」將解析爲頁面的地址+?,這將意味着一個空的片段標識符。

做後者可能會阻止導航(新加載)到同一頁面,而是嘗試跳轉到片段標識符中帶有ID的元素。但是,由於它是空的,它不會跳到任何地方。

通常,作者只是將#放在類似於href的屬性中,而不會在他們使用腳本的地方使用屬性。在這些情況下,他們可以使用action =「」(或者如果驗證允許,則省略它)。

+0

這意味着什麼:'action =「?」將解析爲頁面的地址+?,這將表示空的片段標識符。[[片段標識符](http://www.w3.org/DesignIssues/Fragment.html) – godfrzero

1
<form name="test" action="process.php" method="get"> 
<input type="submit" value="Submit"> 

這裏使用的動作將帶您到process.php頁面點擊提交按鈕後。 簡而言之,action=用於在填寫表格並提交後轉到指定頁面(在action=中提及)。

-1

動作是在形式用於指定文件的URL時表單提交

+1

問題不在於什麼是動作屬性。問題是爲什麼它指向一個問號...... –

3

'<form action="?" ... '提交表單時剝去查詢字符串關的URL將處理輸入控制的屬性,並提交表單到當前文檔地址(即它自己)。

這是什麼意思:

讓我們用下面的網址爲例:

ExampleSite.com ** SearchTerm1 =巧克力& SearchTerm2 =蛋糕**

此URL包含查詢字符串 '?SearchTerm1 =巧克力& SearchTerm2 = cake' 並將該查詢字符串發送到附加到該URL的網站服務器。

有時,您希望確保將傳遞給服務器的URL刪除了任何查詢字符串(即查詢完全刪除了字符串)並且只傳遞該URL。

比方說,你書籤的頁面,使用完整的URL和查詢字符串ExampleSite.com?SearchTerm1 =巧克力& SearchTerm2 =蛋糕****

現在你進入該頁面,並有一個搜索表單。

您決定使用搜索表單搜索新的東西...

'<form action="?" ... ',如上文所使用,去除當表單提交的URL查詢字符串,並提交表單到(通常是一個'控制器'(一個編程頁面,決定如何處理用戶發送給它的信息))。