2012-09-12 57 views
0

我有一些舊的代碼與它的document.write。如何用更合適的東西替換document.write

<script type="text/javascript" language="JavaScript1.2"> 
document.write('<form name="InvGenPayDonation" action="'+PostURL+'" onsubmit="return validateForm();" method="POST">'); 
</script> 

我該如何使用在頁面加載時已經確定的javascript變量替換動作?這是代碼,它不是函數的一部分。 (我已經取代名字,所以SUBSTR指標是不正確的,但我敢肯定,你明白了吧。)

// Check where we came from so that we can go to the right spot when the 
// form gets posted from outside of our HTML tree. 
var PostURL = '/event.php'; 

if (window.location.href.substr(0, 21) == 'http://10.10.10.10:80') 
    PostURL = 'http://10.10.10.10:8580/event.php'; 
else if (window.location.href.substr(0, 14) == 'http://webapps') 
    PostURL = 'http://10.100.0.11:8580/event.php'; 
else if (window.location.href.substr(0, 7) == 'webapps') 
    PostURL = 'http://10.10.10.10:8580/event.php'; 
else if (window.location.href.substr(0, 10) == 'http://www') 
    PostURL = 'https://secure.french.toast.new_zeland.france/event.php'; 

我想PostURL進入窗體的動作。如果我可以在沒有document.write的情況下做到這一點,那會很棒。我只需要一些幫助。謝謝。

+1

投票關閉,因爲這確切的代碼這個問題(這個問題)蓋在這樣一個問題:http://stackoverflow.com/questions/12396219/爲什麼要做 - 在提交功能似乎不是執行/ 12396359#12396359 –

+0

請參閱http://stackoverflow.com/questions/5361751/how-to-use-javascript-change-the-form-action – user123444555621

回答

1

其他一些DOM0代碼應該做的伎倆:

// Your code from the question here 
document.forms[0].action = PostURL; 

注意,這裏假設你的形式是頁面上的第一種形式 - 如果不是,用的從零開始的索引取代[0]形成。

但是,您可以(也可能應該)使用不依賴於頁面佈局的更現代的解決方案。最簡單的是document.getElementById - 只需一個ID屬性添加到您的表格(確保ID的價值是整個網頁唯一的),然後進行以下操作:

document.getElementById("yourFormID").action = PostURL; 
0

我會使用jQuery做。如果您還不知道,您還需要包含jquery文件。

$(document).ready(function() { 
var PostURL = '/event.php'; 

if (window.location.href.substr(0, 21) == 'http://10.10.10.10:80') 
    PostURL = 'http://10.10.10.10:8580/event.php'; 
else if (window.location.href.substr(0, 14) == 'http://webapps') 
    PostURL = 'http://10.100.0.11:8580/event.php'; 
else if (window.location.href.substr(0, 7) == 'webapps') 
    PostURL = 'http://10.10.10.10:8580/event.php'; 
else if (window.location.href.substr(0, 10) == 'http://www') 
    PostURL = 'https://secure.french.toast.new_zeland.france/event.php'; 


    $("#search-form").attr("action", PostURL); 
}); 

<form action='' id="search-form"> 
</form> 
+1

你這不需要jQuery。 –

+0

你不需要,但如果他試圖更新舊的js,升級到jQuery系統可能是有益的,因爲許多新插件讓生活變得更加容易。 – James

1

好了,你可以在HTML創建表單,給它和ID,做這樣的:

document.getElementById('myform').setAttribute('action', post_url); 
0

您可以使用jQuery你的目的。此代碼將設置窗體的動作,而不文件撰寫:

$("form[name=InvGenPayDonation]").attr("action", PostURL); 
+3

你不*使用jQuery。 –

+0

好的。的確,jQuery是其中一種方法,但是這一切都浮現在腦海。 – 2012-09-12 21:47:57

相關問題