Javascript 为什么不是';GetElementsByTagName是否在此表单中工作?

Javascript 为什么不是';GetElementsByTagName是否在此表单中工作?,javascript,forms,getelementbyid,getelementsbytagname,getelementsbyname,Javascript,Forms,Getelementbyid,Getelementsbytagname,Getelementsbyname,我在avidest.com/new上有一张表格。第一个字段是单选按钮。电子邮件字段下面是一个提示,该提示应根据为单选按钮选择的值而更改。如果选择了雇主,提示应该是“请使用您的公司电子邮件地址”。如果选择了自由职业者,提示应该是“请使用您的学校电子邮件地址。”。出于某种原因,我的javascript代码无法工作。我已经尝试用GetElementsByName替换getElementsByTagName,但这不起作用。以下是我在html页面的部分编写的函数: <script> funct

我在avidest.com/new上有一张表格。第一个字段是单选按钮。电子邮件字段下面是一个提示,该提示应根据为单选按钮选择的值而更改。如果选择了雇主,提示应该是“请使用您的公司电子邮件地址”。如果选择了自由职业者,提示应该是“请使用您的学校电子邮件地址。”。出于某种原因,我的javascript代码无法工作。我已经尝试用GetElementsByName替换getElementsByTagName,但这不起作用。以下是我在html页面的部分编写的函数:

<script>
function topHint(){
  if(document.getElementsByTagName('Type').value == "Freelancer"){
    document.getElementById('employorlance').innerHTML = "Please use your school e-mail address.";
  }
  if(document.getElementsByTagName('Type').value == "Employer"){
    document.getElementById('employorlance').innerHTML = "Please use your company e-mail address.";
  }
}
</script>

getElementsByTagName
选择HTML标记名(
正文、输入、表单
等)

您想使用
文档。getElementsByName(“类型”)


getElementsByTagName
选择HTML标记名(
正文、输入、表单
等)

您想使用
文档。getElementsByName(“类型”)


getElementsByTagName
方法不会返回具有匹配名称的单个元素,而是返回具有匹配标记名称的元素数组

在本例中,您将得到一个空数组,因为您没有任何
元素


getElementsByName
方法还返回一个数组,并且您总是会得到所有单选按钮,而不仅仅是所选按钮,因此您必须检查状态:

function topHint(){
  var radios = document.getElementsByName('Type');
  if(radios[0].checked){
    document.getElementById('employorlance').innerHTML = "Please use your school e-mail address.";
  }
  if(radios[1].checked){
    document.getElementById('employorlance').innerHTML = "Please use your company e-mail address.";
  }
}

getElementsByTagName
方法不会返回具有匹配名称的单个元素,而是返回具有匹配标记名称的元素数组

在本例中,您将得到一个空数组,因为您没有任何
元素


getElementsByName
方法还返回一个数组,并且您总是会得到所有单选按钮,而不仅仅是所选按钮,因此您必须检查状态:

function topHint(){
  var radios = document.getElementsByName('Type');
  if(radios[0].checked){
    document.getElementById('employorlance').innerHTML = "Please use your school e-mail address.";
  }
  if(radios[1].checked){
    document.getElementById('employorlance').innerHTML = "Please use your company e-mail address.";
  }
}

由于单选按钮上已经有唯一的ID,为什么不使用
document.getElementById

if(document.getElementById('item4_0_radio').checked){
    // change the hint text
}

由于单选按钮上已经有唯一的ID,为什么不使用
document.getElementById

if(document.getElementById('item4_0_radio').checked){
    // change the hint text
}

我想你真正想要的是:

<script>
function topHint(){
  if (document.getElementById('item4_0_radio').checked) {
      document.getElementById('employorlance').innerHTML = 
         "Please use your school e-mail address.";
  }
  else {
      document.getElementById('employorlance').innerHTML = 
         "Please use your company e-mail address.";
  }
}
</script>

函数topHint(){
if(document.getElementById('item4\u 0\u radio')。选中){
document.getElementById('employorlance')。innerHTML=
“请使用您的学校电子邮件地址。”;
}
否则{
document.getElementById('employorlance')。innerHTML=
“请使用您公司的电子邮件地址。”;
}
}

然后,在每个单选按钮上添加:
onclick=“topHint();”

我想您真正想要的是:

<script>
function topHint(){
  if (document.getElementById('item4_0_radio').checked) {
      document.getElementById('employorlance').innerHTML = 
         "Please use your school e-mail address.";
  }
  else {
      document.getElementById('employorlance').innerHTML = 
         "Please use your company e-mail address.";
  }
}
</script>

函数topHint(){
if(document.getElementById('item4\u 0\u radio')。选中){
document.getElementById('employorlance')。innerHTML=
“请使用您的学校电子邮件地址。”;
}
否则{
document.getElementById('employorlance')。innerHTML=
“请使用您公司的电子邮件地址。”;
}
}

然后,在每个单选按钮上添加:
onclick=“topHint();”

getElementsByTagName('Type')返回一组值,您需要更具体,它是标记名。getElementsByTagName('Type')返回一组值,您需要更具体,它是标记名。谢谢,我将其更改为GetElementsByName,但它仍然不工作。@Philip7899:GetElementsByName方法也返回一个数组。我在上面添加了一些解释。谢谢,我将其更改为GetElementsByName,但它仍然不起作用。@Philip7899:
GetElementsByName
方法还返回一个数组。我在上面添加了一些解释。是的,那是因为它返回一个数组。我更新了我的答案;再试一次。另外,你能澄清一下这个函数应该做什么吗@方舟什么不管用?我没有提供代码示例。我将您建议的代码放回了上面的问题中。它仍然不起作用。@Philip7899我再次编辑了我的答案,以确保收音机确实被检查过……是的,那是因为它返回了一个数组。我更新了我的答案;再试一次。另外,你能澄清一下这个函数应该做什么吗@方舟什么不管用?我没有提供代码示例。我将您建议的代码放回了上面的问题中。它仍然不起作用。@Philip7899我再次编辑了我的答案,以确保收音机确实被检查过……下面是一个证明它起作用的例子。您的页面中必须有其他不同的内容。下面是一个示例,演示它的工作原理。您的页面中必须有其他不同的内容。
<script>
function topHint(){
  if (document.getElementById('item4_0_radio').checked) {
      document.getElementById('employorlance').innerHTML = 
         "Please use your school e-mail address.";
  }
  else {
      document.getElementById('employorlance').innerHTML = 
         "Please use your company e-mail address.";
  }
}
</script>