2012-08-31 50 views
0

下面是我用來在ASP.NET中發佈表單到另一個頁面的代碼.....
只要JavaScript已啓用,但在停用時停止JavaScript的。當JavaScript禁用時使用Javascript提交表單

StringBuilder sb = new StringBuilder(); 
sb.Append("<html>"); 
sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>"); 
sb.AppendFormat("<form name='form' action='{0}' method='post'>",postbackUrl); 
sb.AppendFormat("<input type='hidden' name='id' value='{0}'>", id); 
// Other params go here 
sb.Append("</form>"); 
sb.Append("</body>"); 
sb.Append("</html>"); 

Response.Write(sb.ToString()); 

Response.End(); 
+0

有一個嵌入到body標籤中的onLoad事件處理程序,它是JavaScript(並且只能是)。如果你關閉JavaScript,它*清楚*不會工作。你可以通過添加一個按鈕來提交表單來解決這個問題,或者添加一個noscript標記來告訴人們,如果沒有啓用JavaScript,它將無法工作。 – SpaceBison

回答

3

嘛,你使用JavaScript來發布形式

onload='document.forms[""form""].submit()'

所以當禁用JavaScript代碼將不會執行。 這是所有工作(或不工作)如預期。

+0

用於此的ny解決方法? – user987166

+0

沒有我知道的... –

0

它不起作用的原因是因爲您使用JavaScript來提交表單。

「的onload = 'document.forms [ 」「 形式 」「]。提交()'」

上面的代碼的JavaScript。

也可以爲那些沒有啓用JavaScript的用戶添加一個提交按鈕,說「點擊繼續」,但爲已啓用JavaScript的用戶保留OnLoad。

+0

以及唯一的問題是,我不能這樣做,因爲它在內部頁面中使用,並且無法向用戶顯示該頁面 – user987166

+0

內頁是什麼意思?它是否在iFrame中?不知何故,用戶必須加載頁面,因此您可能需要解決並向不支持JavaScript的用戶顯示按鈕。我不認爲你可以自動提交沒有JavaScript的表單,除非你強制用戶按下按鈕。可能需要重新設計以適應這種情況,或者您可能想向未啓用JavaScript的用戶顯示錯誤消息。 – AndreCruz