根据选择改变形式

时间:2015-05-16 19:09:08

标签: php html forms

我正在开展一个项目,我希望在页面上有两种不同的表单,具体取决于用户的选择。如果其中一个表单处于活动状态,则另一个表单将被隐藏。我也希望POST到另一个页面。

目前,这是我的解决方案:

<script type="text/javascript">
 function showHide() {
   var div = document.getElementById("CSGO_");
   if (div.style.display == 'none') {
     div.style.display = '';
   }
   else {
     div.style.display = 'none';
   }
 }
</script>

<script type="text/javascript">
 function showHide1() {
   var div = document.getElementById("LOL");
   if (div.style.display == 'none') {
     div.style.display = '';
   }
   else {
     div.style.display = 'none';
   }
 }
</script>

这是我用来隐藏/显示表单的两个脚本。 这是用户选择填写哪一个 - (我宁愿有一个下拉菜单或其他东西)

<table width="200" border="0">
<tr>
<td><form onsubmit="showHide(); return false;"><input type="submit" name="CSGO" value="Counter Strike"></form></td>
<td> <form onsubmit="showHide1(); return false;"><input type="submit" name="LOL" value="League of Legends"></form></td>
</tr>
</table>

这些是隐藏的形式divs

 <div id="CSGO_" style="display: none;">
 <form name="reg2" action="confirm_reg2.php" method="post"  >
 <input type="text">
 </form>
 </div>

 <div id="LOL"  style="display: none;">
 <form name="reg2" action="confirm_reg2.php" method="post"  >
 <input type="text" value="league!">
 </form>
 </div>

我正在寻找一个更好的解决方案,因为这感觉非常笨重。

1 个答案:

答案 0 :(得分:1)

一种选择是使用javascript动态更改表单属性。

<form name="form1" action="" method="post">
    <select id='dropdown' onchange="change_attributes(this.form)">
      <option value="1">first</option>
      <option value="2">second</option>
    </select>
    <input id = "text1" type="text" value="MyValue1">
    <input id = "text2" type="text" value="MyValue3">
</form>

<script>
function change_attributes(myform){
    if(myform.dropdown.selectedIndex === 0){
        myform.action = "page1.php";
        myform.text1.value = "MyValue1";
        myform.text2.value = "MyValue3";
    }else{
        myform.action = "page2.php";
        myform.text1.value = "MyValue2";
        myform.text2.value = "MyValue4";
    }
 }  
</script>