无法将值发布到程序

时间:2016-09-12 06:47:53

标签: javascript jquery html html5

我正在尝试根据用户选择(通过单选按钮)将文本值发布到不同的python程序。程序适用于单一表单操作

<form action='/cgi-bin/prog1.py' method='POST'>
    ...text input1
    ...text input2
    ...submit

</form>

但使用单选按钮时,文本值不会发布到程序中。

这是我试过的代码

<!DOCTYPE html>
<html>
 <head>
  <title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script type="text/javascript">
  function whichsite(form){
    var sites = form.elements.site, i = sites.length;
    while (--i > -1){
    if(sites[i].checked){
        return sites[i].value;
        }
    }
  }
  </script>
 </head>
 <body>
  <form action="#" onsubmit="window.open(whichsite(this)); return false; method='POST' ">
  <b>Program Jump</b>
  <p>
  Enter PDB ID:<input type="text" name="PDB_ID"><br>
  Enter PDB Chain:<input type="text" name="Chain_ID"><br>
  <label><input type="radio" name="site" value="/cgi-bin/prog1.py">P-P</label>
  <label><input type="radio" name="site" value="/cgi-bin/prog2.py">P-L</label>
  <label><input type="radio" name="site" value="/cgi-bin/prog3.py">P-C</label>
  <p>
  <input type="submit" value="Submit">
  </form>
 </body>
</html>

帮助我!

1 个答案:

答案 0 :(得分:0)

我认为您应该使用action方法而不是onsubmit方法更改表单的window.open属性值,您可以尝试以下方法:

<!DOCTYPE html>
<html>
<head>


<title></title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script type="text/javascript">
  function whichsite(form){
    var sites = form.elements.site, i = sites.length;
    while (--i > -1){
    if(sites[i].checked){
        // here change the action value instead of return the site
        form.action = sites[i].value;
        }
    }
  }
  </script>
 </head>
 <body>
  <form action="#" onsubmit="whichsite(this); return false;" method="POST">
  <b>Program Jump</b>
  <p>
  Enter PDB ID:<input type="text" name="PDB_ID"><br>
  Enter PDB Chain:<input type="text" name="Chain_ID"><br>
  <label><input type="radio" name="site" value="/cgi-bin/prog1.py">P-P</label>
  <label><input type="radio" name="site" value="/cgi-bin/prog2.py">P-L</label>
  <label><input type="radio" name="site" value="/cgi-bin/prog3.py">P-C</label>
  <p>
  <input type="submit" value="Submit">
  </form>
 </body>
</html>

或者,您可以尝试在action广播事件中更改change的值,希望这可以帮助~~~