2011-10-14 175 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