2017-06-16 121 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