我想使用Javascript更改表單的動作,所以我可以在不同頁面的同一表單中提供不同的提交輸入。我還有使用Apache重寫將example.com/page-name
更改爲example.com/index.pl?page=page-name
的額外複雜性。我發現,即使預期的網址(example.com/page-name
)顯示在地址欄中,也會導致更改表單的操作,導致example.com/index.pl
(無頁面參數)呈現。爲了解決這個問題,我使用Javascript來插入隱藏字段來設置頁面參數。我仍然改變了表單的操作,只是這樣地址欄顯示了正確的URL。
function setAction (element, page)
{
if(checkCondition(page))
{
/* Insert a hidden input into the form to set the page as a parameter.
*/
var input = document.createElement("input");
input.setAttribute("type","hidden");
input.setAttribute("name","page");
input.setAttribute("value",page);
element.form.appendChild(input);
/* Change the form's action. This doesn't chage which page is displayed,
* it just make the URL look right.
*/
element.form.action = '/' + page;
element.form.submit();
}
}
形式:
<input type="submit" onclick='setAction(this,"my-page")' value="Click Me!" />
這裏是我的Apache重寫規則:
,爲什麼只設置的動作並沒有
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^/(.*)$ %{DOCUMENT_ROOT}/index.pl?page=$1&%{QUERY_STRING}
我很感興趣的任何交代工作。
來源
2013-03-29 02:05:54
Waz
我想你的意思是'document ['search-theme-form']','document.search 「主題形式」實際上不起作用。 – 2012-09-12 21:46:13
您可能需要定義不帶連字符的表單名稱 – hop 2013-07-11 14:43:54