2011-08-30 25 views
0

我想創建一個簡單的表單,它將用戶導向2個不同的頁面(取決於他們選擇的內容)。我使用getElementById.innerHTML來區分網站中的代碼,以創建兩個不同的<form action="SENDTHEUSERHERE" method="POST"> -HTML元素。 下面的代碼:Javascript - getElementById.innerHTML問題

if (blabla which works) 
    { 
    document.getElementById("insert").innerHTML = "<form action='insert.php' method='POST'>"; 
    } 
else if (blabla which works) 
    { 
    document.getElementById("service").innerHTML = "<form action='service.php' method='POST'>"; 
    } 

// MORE BLABLA-CODE 

    <span id='insert'></span> 
    <span id='service'></span> 

    // REST OF THE FORMULAR 

當我'發送此公式推,這讓我簡單地把它從發送相同的頁面。我想這意味着那些.innerHTML元素無法識別。你有什麼建議我可以解決這個問題嗎?順便說一句..是的,我是一個Javascript Noob -_-

感謝您的任何幫助!

+1

難道你不能讓表單在頁面上確定存在並給它一個id。然後使用JavaScript來獲取它並更改其操作屬性? – Psyrus

+0

這裏沒有足夠的細節來確定是什麼錯誤。發佈完整的示例。 – lincolnk

回答

3

只要改變,而不是使用innerHTML形式的行動......

if (conditionOne) { 
    document.forms['formName'].action = 'insert.php'; 
} else if (conditionTwo) { 
    document.forms['formName'].action = 'service.php'; 
} else { 
    alert('Error!'); 
} 
2

你將不得不發佈你的完整的HTML頁面+ JavaScript代碼或顯示問題的工作示例。從你發佈的那一點,不可能知道什麼是錯的。

但是,這就是說,你正以錯誤的方式解決這個問題。相反,改變一些節點的innerHTML,有一種形式,沒有動作,然後在JavaScript這樣做的:

<form id="myForm"> 

var myForm = document.getElementById("myForm"); 
myForm.action = (someConditionHere) ? "insert.php" : "service.php"; 
+0

這將超過370行代碼。我想沒有人想讀這個。 :) 我認爲問題來自.innerHTML事物 – Crayl

1

如果你的例子是你需要做的,你可以修改現有表單的action屬性。

<form method='post' action='nowhere'> 
<stuff> 
</form> 

<script type='text/javascript'> 
if (something) { 
    document.forms[0].action = 'insert.php'; 
} else { 
    //etc 
} 
</script>