Javascript - getElementById.innerHTML问题

时间:2011-08-30 21:38:57

标签: javascript

我想创建一个简单的公式,将用户引导到2个不同的页面(取决于他们选择的内容)。我使用getElementById.innerHTML来区分网站中的代码以创建两个不同的<form action="SENDTHEUSERHERE" method="POST"> - HTML元素。 这是代码:

 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-Elements无法识别。你有什么建议我可以解决这个问题吗?顺便说一下..是的,我是一个Javascript Noob -_-

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

只需更改表单操作,而不是使用innerHTML ...

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

答案 1 :(得分:2)

您必须发布完整的HTML网页+ javascript代码或显示问题的实际示例。从你发布的小信息中,我们无法分辨出可能出现的问题。

但是,那说,你是以错误的方式解决这个问题。不是改变某些节点的innerHTML,而是让一个表单没有动作,然后在javascript中做类似的事情:

<form id="myForm">

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

答案 2 :(得分:1)

如果您的示例是您需要执行的操作,则只需修改现有表单的操作属性即可。

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

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