2017-06-16 124 views
0

我有一個我正在工作的吸入請求表單,我試圖根據某些單選按鈕是否被選中來填充表單輸入(基於表單中的回答填充電子郵件主題)。我在<body>的底部有下面的代碼,並且在<head>中嘗試過,但沒有成功。任何想法,爲什麼這似乎沒有工作?JS腳本來填充文本字段

<script type="text/javascript"> 
     if (form.id1.checked == true) { 
      document.getElementById("EMAIL_TITLE").value = "subject line"; 
     } 

     else if (form.id2.checked == true) { 
      document.getElementById("EMAIL_TITLE").value = "subject line"; 
     } 

     else if (form.id3.checked == true) { 
      document.getElementById("EMAIL_TITLE").value = "subject line"; 
     }   

     else if (form.id4.checked == true) { 
      document.getElementById("EMAIL_TITLE").value = "subject line"; 
     } 

     else if (form.id5.checked == true) { 
      document.getElementById("EMAIL_TITLE").value = "subject line"; 
     } 

     else { 
     document.getElementById("EMAIL_TITLE").value = "unknown"; 
     } 
</script> 

基於@mhatch的回答,我已將代碼更新爲以下內容,但仍有問題。我可能丟失在這點簡單的東西/基本的,但很爲難,什麼

<script type="text/javascript"> 
function handleChange() 
{ 
    var value = document.form.Request_Type.value; 
     if (value == "Request_Access") { 
      document.getElementById("EMAIL_TITLE").value = "subject line 1"; 
     } 

     else if (value == "Request_Support") { 
      document.getElementById("EMAIL_TITLE").value = "subject line 2"; 
     } 

     else if (value == "Request_Reporting") { 
      document.getElementById("EMAIL_TITLE").value = "subject line 3"; 
     }   

     else if (value == "Request_Retire") { 
      document.getElementById("EMAIL_TITLE").value = "subject line 4"; 
     } 

     else if (value == "Request_Other") { 
      document.getElementById("EMAIL_TITLE").value = "subject line 5"; 
     } 

     else { 
     document.getElementById("EMAIL_TITLE").value = "subject line - Unknown"; 
     } 
}  
</script> 

<input type="radio" name="Request_Type" onchange="handleChange();" value="Request_Access" id="access"> 
<input type="radio" name="Request_Type" onchange="handleChange();" value="Request_Support" id="support"> 
<input type="radio" name="Request_Type" onchange="handleChange();" value="Request_Reporting" id="reporting"> 
<input type="radio" name="Request_Type" onchange="handleChange();" value="Request_Retire" id="retire"> 
<input type="radio" name="Request_Type" onchange="handleChange();" value="Request_Other" id="other"> 
+2

您對EMAIL_TITLE左側雙雙引號。 –

+4

此頁面加載時將運行,而不是選擇無線電選項的結果。這可能不是你所期望的... –

+0

對不起,這不是我的實際代碼,只是從我取出任何敏感信息時的錯誤類型,我會編輯我的帖子以糾正。 – ddrees

回答

0

首先,如果他們是單選按鈕,它們需要具有相同的屬性name。代碼form.id1.checked建議每個按鈕都有其自己的名稱值。這將導致所有按鈕同時點擊。如果這是你想要的,你應該使用複選框。其次,你需要將你的邏輯附加到一個事件上。

我想象你正在尋找的東西是這樣的:

function handleChange(){ 
 
\t var value = document.form.id.value; 
 
\t if (value == "1") { 
 
     document.getElementById("EMAIL_TITLE").value = "subject line1"; 
 
    } 
 

 
    else if (value == "2") { 
 
     document.getElementById("EMAIL_TITLE").value = "subject line2"; 
 
    } 
 

 
    else if (value == "3") { 
 
     document.getElementById("EMAIL_TITLE").value = "subject line3"; 
 
    }   
 

 
    else if (value == "4") { 
 
     document.getElementById("EMAIL_TITLE").value = "subject line4"; 
 
    } 
 

 
    else if (value == "5") { 
 
     document.getElementById("EMAIL_TITLE").value = "subject line5"; 
 
    } 
 

 
    else { 
 
    document.getElementById("EMAIL_TITLE").value = "unknown"; 
 
    } 
 
}
<form action="" name="form"> 
 
\t <input type="radio" name="id" onchange="handleChange();" value="1" /> 
 
\t <input type="radio" name="id" onchange="handleChange();" value="2" /> 
 
\t <input type="radio" name="id" onchange="handleChange();" value="3" /> 
 
\t <input type="radio" name="id" onchange="handleChange();" value="4" /> 
 
\t <input type="radio" name="id" onchange="handleChange();" value="5" /> 
 
\t <input type="text" name="title" id="EMAIL_TITLE" value="" /> 
 
</form>

+0

這看起來正是我所需要的,謝謝!關於名稱屬性,我確實已將它們設置爲相同的名稱,只是不同的值,爲了避免混淆,我應該在代碼中以不同的方式指定。 – ddrees

+0

@ddrees如果這解決了您的問題,請將其標記爲答案。謝謝 – mhatch

+0

我的建議更新我的代碼後仍然有問題。我更新了我原來的帖子,告訴了我的代碼在你的建議之後的樣子。 – ddrees