gpt4 book ai didi

javascript - 为什么 GetElementsByTagName 不能以这种形式工作?

转载 作者:行者123 更新时间:2023-11-28 20:36:25 25 4
gpt4 key购买 nike

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

<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>

然后,我在页面加载时调用该函数:

<body onload = "topHint()">

这是页面上的表单元素:

<label id="item4_0_label">
<input type="radio" id="item4_0_radio" data-hint="" required value="Freelancer" name="Type" />
<span class="fb-fieldlabel" id="item4_0_span">Freelancer
</span>
</label>
<label id="item4_1_label">
<input type="radio" id="item4_1_radio" required value="Employer" name="Type" />
<span class="fb-fieldlabel" id="item4_1_span">Employer
</span>
</label>
<div class="fb-hint" id ="employorlance" style="color: rgb(136, 136, 136); font-weight: normal; font-style: normal; ">
Please use your school email address.
</div>

谢谢。

根据stakoverflow的建议,我尝试了以下方法,但仍然不起作用:

function topHint() {
var elems = document.getElementsByName("Type");
for (i in elems) {
if (elems[i].value == "Freelancer") {
document.getElementById('employorlance').innerHTML = "Please use your school e-mail address.";
}

if (elems[i].value == "Employer") {
document.getElementById('employorlance').innerHTML = "Please use your company e-mail address.";
}
}
}

最佳答案

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

在您的情况下,您将得到一个空数组,因为您没有任何 <type>元素。

<小时/>

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.";
}
}

关于javascript - 为什么 GetElementsByTagName 不能以这种形式工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15281517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com