2009-12-16 42 views
1

我有一個html頁面,人們使用會員鏈接訪問,所以它在url(http://www.site.com?cmpid=1234&aid=123)中有附屬代碼。我想添加cmpid和幫助表單動作url(所以當提交時,它提交給url/form.aspx,但添加cmpid和援助的結局,即:form.aspx?cmpid = 1234 & aid = 123)。獲取URL參數並使用javascript插入表單動作url

我沒有其他選擇比JavaScript。我無法將此頁面設爲php或aspx。

+0

見http://stackoverflow.com/questions/827368/use-the-get-paramater-of-the-url-in-javascript – Sampson 2009-12-16 17:36:22

+0

我不認爲這應該被關閉。您鏈接的這個問題顯示瞭如何獲取查詢字符串,但是它不顯示如何將它追加到'

'操作。 – 2009-12-16 17:40:46

回答

1
window.onload = function() { 
    var frm = document.forms[0]; 
    frm.action = frm.action + location.search; 
} 
+0

謝謝喬希,這工作完美。 – Kris 2009-12-16 18:18:00

0

您可以通過location.search可以訪問查詢字符串。然後,你應該能夠將其直接添加到表單中的作用,類似如下:

// Get a reference to the form however, such as document.getElementById 
var form = ...; 

// Get the query string, stripping off the question mark (not strictly necessary 
// as it gets added back on below but makes manipulation much easier) 
var query = location.search.substring(1); 

// Highly recommended that you validate parameters for sanity before blindly appending 

// Now append them 
var existingAction = form.getAttribute("action"); 
form.setAttribute("action", existingAction + '?' + query); 

順便說一句,我發現,直接修改窗體的行動的查詢字符串可擊 - 和 - 錯過 - 我認爲,特別是,如果你在發佈結果,IE將修剪任何查詢。 (這是前一陣子,我不記得確切的組合因素,但足以說這不是一個好主意)。

因此你可能希望通過動態創建作爲隱藏輸入的<form>的子元素來對查詢中所需的名稱/值對進行編碼。