2011-10-14 221 views
0

提交表单时,单选按钮在选中时不会显示“已选中”。该表单运作良好,否则,但我无法从按钮中获得价值。关于当前代码的任何建议?选中的单选按钮

<form action="" method="post" id="termCloudForm"> 
    <nobr> 
     Slot: 
     <input type="text" name="Slot" size="6" 
      <% If Request.Form("Slot") <> "" Then Response.Write(" value=""" & Request.Form("Slot") & """") %> 
     /> 
    </nobr> 
    <nobr> 
     Date: 
     <input type="text" name="Date" size="6" 
      <% If Request.Form("Date") <> "" Then Response.Write(" value=""" & Request.Form("Date") & """") %> 
     /> 
    </nobr> 
    <nobr> 
     <input type="radio" id="radio_button_1" name="radio_button" value="1" /> 
     rad1  
    </nobr> 
    <nobr> 
     <input type="radio" id="radio_button_2" name="radio_button" value="2" /> 
     rad2 
    </nobr> 
<input type="submit" name="action" value="Submit" /> 
</form> 

和我检索它的javascript部分已经被大大简化,只是检查它是否已经通过。我认为强迫它进入JavaScript的termcloud是我得到的错误,但我不知道在哪里。

function initTermCloud() { 
var myForm = document.getElementById("termCloudForm"); 
var slot = myForm.elements["Slot"].value; 
var date = myForm.elements["Date"].value; 
var url = encodeURI('http://TermCloudJSON2Local.asp?Slot=' + slot + '&Date=' + date); 

alert(myForm.elements["radio_button_1"].checked == true); 
var query = new google.visualization.Query(url); 
query.setTimeout(20); 
query.send(queryResponse); 
} 
+0

你试过输出整个POST阵列,以确保你不只是缺少价值? –

+0

你可以在你试图检索你的值的地方显示代码吗? – Jrod

回答

1

使用

<% response.write(request.form("radio_button")) %> 

必须打印根据您的选择1或2。

这不起作用?

编辑:根据您编辑的问题

试试这个

function validate(){ 
    var cont=0; 
    var result=false; 
    var oArr=document.getElementsByName('radio_button'); 
    for(cont=0;cont < oArr.length;cont++){ 
     if(oArr[cont].checked == true){ 
      alert(oArr[cont].id + 'was checked'); 
      result=true; 
     } 
    } 
    return(result); 
} 
+0

所以<%response.write(request.form(“radio_button”))%>出来正确,但它似乎没有正确传递给代码的JavaScript部分,我不知道为什么。 – user528676

+1

你的方法来检查哪个无线电按钮是不正确的,单选按钮/复选框的行为是基于它们名称的元素数组,正确的方法是获取整个数组,并在它们之间进行迭代并检查检查状态 – Rafael

+0

所以我有只是尝试了你的代码,但它没有提示。我认为问题可能在于表单动作本身,因此它会取消未经检查的按钮。不知道如何改变这一点,但。 – user528676

1

与如下ID尽量找到。

function initTermCloud() { 
     var myForm = document.getElementById("termCloudForm"); 
     var slot = myForm.elements["Slot"].value; 
     var date = myForm.elements["Date"].value; 
     var url = encodeURI('http://TermCloudJSON2Local.asp?Slot=' + slot + '&Date=' + date); 

     alert(document.getElementById("radio_button_1").checked) 

     var query = new google.visualization.Query(url); 
     query.setTimeout(20); 
     query.send(queryResponse); 
    } 
+0

我最初使用这个确切的代码,但我只得到单选按钮的初始值,即未选中,或者如果我设置一个最初检查后发现。我认为这可能与发布到自己有关。不知道为什么。 – user528676