2011-05-09 63 views
0

我花了三個多小時試圖處理我給出的代碼。我從來沒有做過JavaScript。請幫忙。 我有一個帶有4個單選按鈕的窗體,其中一個指定了「other」,旁邊是一個應該發佈用戶指定值的文本框。這是我嘗試過的。
HTML:爲單選按鈕值指定文本框「其他」值

<td id="amount_container"> 
    <input name="chargetotal" type="radio" value="75.00" onclick="donation_value();" />$75<br /> 
    <input name="chargetotal" type="radio" value="125.00" onclick="donation_value();" />$125<br /> 
    <input name="chargetotal" type="radio" value="250.00" onclick="donation_value();" />$250<br /> 
    <input name="chargetotal" type="radio" value="other" />other 
    <input type="text" name="specified" size="10" /> 
</td> 

的javascript:

<script type="text/javascript"> 
function donation_value(){ 
    var val = 0; 
    for(i = 0; i < document.form1.chargetotal.length; i++) { 
     if(document.form1.chargetotal[i].checked == true) { 
      val = document.form1.chargetotal[i].value; 
      if(val=='other') { 
       document.form1.specified.disabled=false; 
       document.form1.specified.focus(); 
       document.form1.chargetotal.value=document.form1.specified.value; 
      } else { 
       document.form1.specified.disabled=true; 
      } 
     } 
    } 
} 
</script> 

回答

0

看來,你忘了添加的onclick處理程序「等「收音機。 我覺得應該是

<input name="chargetotal" type="radio" value="other" onclick="donation_value();"/> 

更新

我想我明白你的問題是什麼:) 您可以添加回調,頁面提交時whick將被調用。如果選擇此回調,將爲「其他」收音機設置值。喜歡的東西

function assignOtherValue() { 
    for(i = 0; i < document.form1.chargetotal.length; i++) { 
     if(document.form1.chargetotal[i].checked == true) { 
      var val = document.form1.chargetotal[i].value; 
      if(val=='other') { 
       document.form1.chargetotal[i].value=document.form1.specified.value; 
      } 
     } 
    } 
    return true; 
} 

,並加入到形式:只

<form name="form1" onSubmit="return assignOtherValue();"> 
+0

你說得對。我之前擁有它並將它拿出來,我認爲它仍然「有效」。但是,在發佈頁面時,複選框中的值不會被分配到「chargetotal」。 – 2011-05-09 22:51:46

+0

不錯!而且非常簡單!謝謝!!! – 2011-05-10 21:16:33

0

修復您的JS:

function donation_value(){ 
    var val = 0; 
    var the_form = document.forms['form1']; 
    for(i = 0; i < the_form.chargetotal.length; i++) { 
     if(the_form.chargetotal[i].checked == true) { 
      val = the_form.chargetotal[i].value; 
      if(val=='other') { 
       the_form.specified.disabled=false; 
       the_form.specified.focus(); 
       the_form.chargetotal.value=the_form.specified.value; 
      } else { 
       the_form.specified.disabled=true; 
      } 
     } 
    } 
} 

小提琴:http://jsfiddle.net/maniator/vQNyY/

+0

相同的結果集中不工作了。通過使用行document.form1.chargetotal.value = document.form1.specified.value;該行強制執行,不起作用。其他一切都集中在什麼應該是正確的價值。但文本框不會發布爲「chargetotal」,我不知道如何分配它。 – 2011-05-09 22:30:53